我曾经使用.on如下:
$( elements ).on( events, selector, data, handler );
=>
$div=$('<div />');
$div.on('click',fn(){...});
但是对于代表我们有:
$( elements ).delegate( selector, events, data, handler );
和
$div.delegate...
不起作用! 在这种情况下,我没有选择器,只有Dom。我该怎么办? 提前谢谢。
答案 0 :(得分:2)
selector
只能是一个字符串。要使用DOM元素或jq匹配集,您可以在处理程序中过滤它,例如:
$( document).on( "click", null, data, handler );
//later
var $div=$('<div />');
function handler(event){
if($(event.target).closest($div).length)
//do some stuff
}
$(document).on("click", null, {
data: "some data"
}, handler);
//later
var $div = $('<div />').html('the DIV to call handler');
$div.appendTo('body');
function handler(event) {
if ($(event.target).closest($div).length) {
//do some stuff
alert('handler call for the DIV');
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
other div, no click event bound
</div>
&#13;