简单的讲, 加了第二个参数( selector )后, 如果触发了事件( event ), 就调用函数(fn) ,并逐级向上冒泡查找还有没有这个选择器.
$('body').on('click', 'div', function(e) {
alert(this.className)
})
// aaron
// left
我们将第二个参数替换成div, 并显示div的类名就很容易懂了
$('body').on('click', 'div', function(e) {
alert(this.className)
})
// aaron
// left
我们将第二个参数替换成div, 并显示div的类名就很容易懂了
2017-07-29
可以再加一个
$("a").on("click", function() {
alert("这是a trigger触发的事件");
});
对比看看结果就明白了。
$("a").on("click", function() {
alert("这是a trigger触发的事件");
});
对比看看结果就明白了。
2017-07-28
trigger会冒泡,a冒泡到父div#accident,而父div#accident定义click事件,所以点击第一个button会有alert,也触发了input的focus(因为input的focus事件 有定义),因为title没有传值所以input的value没有显示;triggerHandler不会冒泡,$("a").triggerHandler("click"); 因为并没有定义a 的click事件,又因为不会冒泡,所以无法触发父div content的click事件,触发了input的focus是因为input有定义focus,并且title有值所以input的value有值
2017-07-28
$("button:last").click(function() {
$("button:first").trigger('click','last');
}); 这个其实是点击第二个button时,触发了第一个button的点击事件,后面的'last' 说明是last button触发的,实际调用的仍然是$("button:first").click(function(event,bottonName) {};
$("button:first").trigger('click','last');
}); 这个其实是点击第二个button时,触发了第一个button的点击事件,后面的'last' 说明是last button触发的,实际调用的仍然是$("button:first").click(function(event,bottonName) {};
2017-07-28
用触发器与原生的事件的区别(以click为例):原生的需要用户执行一定的触发条件(如点击),才会执行对应的触发事件(如click事件对应的函数),而使用触发器的话,可以自己设置其在代码执行的某个条件下触发 请问各位大神,这样的理解是对的吗?
2017-07-27
jQuery 1.7 版本前该方法触发 mouseenter 和 mouseleave 事件。
jQuery 1.8 版本后该方法触发 mouseover 和 mouseout 事件。
jQuery 1.8 版本后该方法触发 mouseover 和 mouseout 事件。
2017-07-26
jQuery 1.7 版本前该方法触发 mouseenter 和 mouseleave 事件。
jQuery 1.8 版本后该方法触发 mouseover 和 mouseout 事件。
jQuery 1.8 版本后该方法触发 mouseover 和 mouseout 事件。
2017-07-26