以下代码之间的重要/区别是什么? (e)最后
jQuery(document).on( 'click', '.something', function(e) {
vs.
jQuery(document).on( 'click', '.something', function() {
谢谢!
答案 0 :(得分:5)
两种表达方式在技术上没有区别。 'e'
引用的事件变量是可选的,更像this
中的jquery
表达式。您可以使用该e
变量来确定某些信息,例如调用该事件的目标或任何其他属性。
jQuery(document).on( 'click', '.something', function() {
alert(this.id); // gives you the id of the element using this
});
jQuery(document).on( 'click', '.something', function(e) {
alert(e.target.id); // gives you the id of the element using event
});
在我看来,使用事件e
的最大好处是,当通过this
调用事件处理程序时,与document
相比,它可以提供更正确的信息。
$(document).on('click',function()
{
alert($(this).attr("id")); // id as undefined
})
$(document).on('click',function(e)
{
alert(e.target.id); // gets the correct id
})
答案 1 :(得分:1)
e
参数是触发的事件,即jQuery event
object。两个案例event
都已创建,但要访问它,我们将其作为参数传递。
// Case 1
jQuery(document).on( 'click', '.something', function(e) {
e.which; // Short form. This is Click Event object.
});
// Case 2
jQuery(document).on( 'click', '.something', function() {
// There's no reference to the event that's triggered.
});