在jQuery中,触发click等事件的更好方法是什么?使用该.trigger('click')功能还是致电.click()?
我总是通过使用触发这个事件,.click()但突然决定也许我应该使用.trigger('click').
我使用这些事件触发器来触发创建的事件侦听器.on('click', function(){...}).
我检查了jquery api,搜索了其他stackoverflow帖子[1] [2],我看不出有任何理由使用其中一个.
我更倾向于使用.trigger()所有事件触发保持一致,因为这可以用于调用任何事件,包括自定义事件.但它似乎.trigger()并不适用于所有情况.
触发事件的最佳方式是什么?.trigger('click')还是.click()?
Ja͢*_*͢ck 10
如果您正在使用.trigger(),则具有能够传递其他参数的优点,而.click()必须在没有任何参数的情况下调用.
取自文档:
$('#foo').bind('custom', function(event, param1, param2) {
alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
Run Code Online (Sandbox Code Playgroud)
'Custom'并且'Event'被传递到事件处理程序,param1并param2分别
除此之外,.click()与基于参数数量实现get/set的其他函数不同,因为它实现了触发器/集合..trigger()对我来说,使用专用更合乎逻辑.
使用jQuery方法时需要注意的一点是,除了作为jQuery方法之外,.click()还有一个DOM Level 2 本机JavaScript方法,可以在HTML元素(如<button>元素)上调用.
如果你有一个像这样的选择器,那么这可能会让人感到困惑的一个地方:
$("#element")[0].click();
Run Code Online (Sandbox Code Playgroud)
在那里,你实际上是在DOM元素上调用方法.例如,如果你尝试过
$("#element")[0].trigger('click');
Run Code Online (Sandbox Code Playgroud)
你会得到一个错误,该元素没有trigger定义方法.
请注意$('#element')[0].click();,在某些元素上无法在Safari中使用.您需要使用变通方法.
| 归档时间: |
|
| 查看次数: |
8159 次 |
| 最近记录: |