最近将jQueryMobile的库更新到最新版后,发现以前用 jQueryMobile 写的一些东西, header 导航栏上的“后退”按钮统统不见了。这个功能挺贴心的,可以自动为你的 Web App 在不同页面之间跳转的时候增加导航功能。于是翻 jQueryMobile 的官方文档,在不起眼的地方发现了这样一句话:

jQuery Mobile has a feature to automatically create and append "back" buttons to any header, though it is disabled by default. This is primarily useful in chromeless installed applications, such as those running in a native app web view. The framework automatically generates a "back" button on a header when the page plugin’s addBackBtn option is true. This can also be set via markup if the page div has a data-add-back-btn="true" attribute.

原来默认把这个功能是关闭。打开它很简单,需要在页面源代码的 page 中加上 data-add-back-btn="true" 。

同时页面的代码中加上一句 js 代码即可:

$(document).bind("mobileinit", function() {
    $.mobile.page.prototype.options.addBackBtn = true;
});  
VN:F [1.9.22_1171]
Rating: 7.9/10 (7 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

jQuery的默认ajax调用是采用异步方式,在等待回调函数的同时也可以干点别的事情,这也是大多数的需求。今天写代码的过程中,有一个应用方式必须使用同步方式加载ajax,于是Google it,发现了方法。其实就要设置一下jQuery了,有两种方法:

1.使用ajaxSetup对ajax全局配置进行设置,设置async的值为false(默认为ture),如:

$.ajaxSetup({async: false});

2.直接在ajax的调用中将async的配置写上去,如:

$.ajax({
    url:  'http://localhost/',
    data: {},
    async: false
});
VN:F [1.9.22_1171]
Rating: 7.9/10 (16 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

很是郁闷,今天写程序,想在文档对象中append一些html上去,诸如<b><p>这些完全没有问题,可是碰到了带链接的HTML如:

$("#test").append("<a href=’#’>test</a>");

firefox毫无问题,IE6、IE7一直到IE8就死活上不去,只显示文本内容,不带任何连接。准备Google一下,却发现Google.com已然无法登陆,Google.cn上查询出来的基本上一页全是采集站的那些垃圾文章,很是郁闷。搞了半天,找到一篇文章,说是jQuery自身append函数的问题,这个函数自己带类似HTML解析和分析的语句,基本的html没问题,碰到链接或者未完全关闭的标签或者是自定义的标签,jQuery就死活认不出来。不知道是否真的如此,手头的js库是压缩版,太晚了头也昏昏沉沉不想再去看劳什子源代码了。直接自己Create一个a标签的元素插入进去好了,这样搞:

$(document.createElement(‘a’)).attr({"href":"#", "id": ‘#mylink’}).appendTo("#test");

然后给这个链接附上内容:

$(‘#mylink’).text("test");

哎,累不累啊。不管了,睡觉了,明天有空看看jQuery的源代码是怎么写的吧。

VN:F [1.9.22_1171]
Rating: 7.1/10 (15 votes cast)
VN:F [1.9.22_1171]
Rating: +5 (from 7 votes)


jQuery漂亮的模式窗体 

jQuery最近发布了1.3版本,据说整体性能和速度有了极大的提高。CoCo是个jQuery饭,当然第一时间把它更新到自己的程序中去。不过运行中没有发现太大的速度变化,其实只要机器快,毫秒级的速度提升是肉眼很难感觉到了。jQuery漂亮的的UI库也在不断更新版本,前几天还是rc4,今天上去一看,rc5了。

第一次使用jQuery的Dialog,弹出的窗口很漂亮,但发现按照文档中来直接使用dialog()函数弹出窗口的话,似乎只能调用一次,第二次调用就没任何反映……无奈只有Google一下,才知道dialog使用之前应该进行一次初始化,然后使用dialog("open")来进行弹出。

初始化(参数参见dialog文档):

$('#dialog').dialog({
        autoOpen: false,
        modal: true,
        title: '错误',
        buttons: {'确定': function(){$(this).dialog('close');}},
        overlay: {opacity: 0.5, background: 'black';}
    });

调用:

$('#dialog').dialog('open');

 

VN:F [1.9.22_1171]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)