所有的CSS選擇器都能在jQuery里使用吨悍,比如$('[data-toggle^=button]')
僚稿。
事件綁定
jQuery的on
和off
分別用于綁定和禁用事件凡桥。
例如:
$('td').on("click", function (event) { // 綁定abc元素上的click事件,單擊時彈出
提示
alert(1);
});
$('td).off('click'); // 禁用abc元素上的click事件
對于Bootstrap框架火惊,它對jQuery的on和off的使用稍有不同唯欣。它使用了另外一種語法
例如:
$(document).on('click.bs.carousel.data-api','td',function (e){};
$(document).off('.carousel.data-api');
上述的on在使用時居触,中間多了一個參數拜秧,而且選擇器變成了document痹屹。它的好處是只在document上綁定一個單擊事件,利用冒泡的機制枉氮,在單擊的時候檢查是否是td元素志衍,如果是才處理暖庄。而前面我們把td作為選擇器的時候,一個頁面有多少td元素就會綁定多少個click事件楼肪,這樣性能會大大降低培廓。
事件命名空間
事件后面都跟了一些字符串,我們簡單稱它們?yōu)閹в忻臻g的事件春叫。比如肩钠,你聲明如下這樣的代碼:
$('#abc').on("click.tomxu", function (event) {
alert(1);
});
一般別人觸發(fā)click事件,都是這樣做的:
$('#abc').trigger('click');
執(zhí)行上述代碼暂殖,在click時价匠,所有綁定的click事件回調都會被執(zhí)行。但是如果觸發(fā)的時候呛每,你不想影響其他click觸發(fā)代碼踩窖,這時候就可以只觸發(fā)自己定義的click事件,以求不會對別人綁定的click回調產生影響晨横,這時可以這樣做洋腮。
$("#abc").trigger('click.tom.xu');
$.data()
很多JS插件里都使用了$(selector).data()方法,它的意思是收集指定元素上的所有以data-
開頭的自定義屬性手形,并合并成為一個對象字面量啥供。
對于以data-
開頭的自定義屬性,它是HTML5新支持的語法库糠。比如:
<div id="abc" data-role="aaa" data-toggle="toggle" data-xxx="tom"></div>
如果要獲取data-role
里aaa
這個值滤灯,則需要調用如下代碼:
$("'#abc").data("role");
如果是不帶參數的
$("'#abc").data();
則表示一次性將所有以data-
開頭的參數都收集起來曼玩,其結果和用如下方式聲明一個value變量是一樣的。
var value = {
role: 'aaa',
toggle: 'toggle',
xxx: 'tom'
};
Bootstrap中的很多JS插件都是利用了這個特性窒百,在HTML元素上定義了一些必要的參數黍判,比如要不要使用動畫、是否開啟鍵盤事件等篙梢。在分析JS插件的option選項參數時即可看到各個參數的詳細解釋顷帖。