閱讀jQueryUI的對話框代碼,我發現了,jQuery的.attr()方法有一些無證的行爲:jQuery的ATTR方法可以設置單擊處理程序和內部文本
<button id="btn1">1</button>
<button id="btn2">2</button>
$(function() {
var props = {
text: 'Click it!',
click: function() {
console.log('Clicked btn:', this);
}
};
$('#btn1').attr(props, true); // Changes #btn1 inner text to 'Click it!'
// and adds click handler
$('#btn2').attr(props); // Leaves #btn2 inner text as it is and fires
// click function on document ready
});
- 你能解釋我是如何工作的?爲什麼要設置
true
作爲屬性值對的 映射後的第二個參數? - 我可以安全地在我的項目中使用此功能嗎?
我建議使用'attr()'創建點擊處理程序是JQuery中不支持的方法。使用框架可能有很多事情,但如果無證件不相信它們,它們可能會在未來的升級中崩潰。已經看到jQuery開發團隊在他們的支持論壇上表達了這個相同的理念 – charlietfl
原因是,我發佈這個問題是我無法理解,爲什麼點擊處理程序在應用之前被解僱。請觀看此[jquery.ui.dialog.js L371](https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.dialog.js#L371) – ASergey