JQuery事件處理程序 - 什么是“最佳”方法在JQuery中附加事件處理程序的以下方法之間有什么區(qū)別?(function () {
var $body = $("body");
$('button').click(function () {
console.log(this) + " - 1";
});
$('button').on('click', function () {
console.log(this) + " - 2";
});
$(document).on('click', 'button', function () {
console.log(this) + " - 3";
});
$body.on('click', 'button', function () {
console.log(this) + " - 4";
});
$body.find('button').on('click', function () {
console.log(this) + " - 5";
});})();我發(fā)現(xiàn)了一些似乎工作而另一個(gè)不工作的情況。例如處理程序2的下方,并不工作一段時(shí)間的處理程序1一樣。為了完成這項(xiàng)工作,我必須實(shí)現(xiàn)Handler 3,這顯然效率較低。$retrieveCust = $("#bxRetrieveCustomer");// Handler 1$retrieveCust.find(".icoX").on("click", function () {
// DO SOMETHING});// Handler 2$retrieveCust.find(".tag-open").on("click", function () {
// DO SOMETHING});// Handler 3$(document).on("click", ".tag-open", function (event) {
// DO SOMETHING});這是HTML<div class="box" id="bxRetrieveCustomer"><h1>RETREIVE CUSTOMER</h1><div class="icoX">X</div><div class="box-liner10">
<table>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Date of Birth</th>
<th>Email</th>
<th>password</th>
<th></th>
</tr>
<!-- ko foreach: Customers -->
<tr>
<td data-bind="text: FirstName"></td>
<td data-bind="text: LastName"></td>
<td data-bind="text: DateOfBirth"></td>
<td data-bind="text: Email"></td>
<td data-bind="text: Pwd"></td>
<td><a class="tag-open"></a></td>
</tr>
<!-- /ko -->
</table></div></div>
2 回答

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果你想要最好我可以推薦使用.on()因?yàn)槟憧梢詣?chuàng)建某種泛型方法,通過傳遞參數(shù)(即事件名稱)也可以重用于其他事件。我通常使用.on()
- 2 回答
- 0 關(guān)注
- 409 瀏覽
添加回答
舉報(bào)
0/150
提交
取消