我知道你可以绑定到单击事件使用jQuery像这样:捕获所有`了`点击包括那些添加dynamcally
$('a').click(function(){});
但对于动态添加HTML元素?比方说,我有以下内容的div
:
<div>
<a href='location.html'>location</a>
</div>
现在我打电话:
$('a').click(
function(){
console.log("going to " + $(this).attr('href'));
return true;
});
这将正常工作。但是,如果某处沿线我打电话
$('div').("<a href='location2.html'>location2</a>");
没有明确地结合该事件处理该事件,则事件处理程序将拿起它。
是否有可能在添加新的a
元素时重新绑定。或者甚至更好,当location.href
属性发生变化时,我可以每次向它添加一个get参数。
例如,如果我是一个a
元素绑定到click事件的事件处理程序是:
function(){
var newid = parseInt(Obj.Request('pageid'), 10) + 1;
location.href = $(this).attr('href') + '?pageid=' + newid.toString();
return false;
}
假设Obj.Request
是返回一个GET参数的函数。 (我已经有这个地方)。
这会抓住所有匹配它吗?无论它是动态还是静态添加的? – FabianCook 2013-03-20 01:21:31
是的,请参阅http://api.jquery.com/on/ – thomas 2013-03-20 01:21:47
请参阅... http://jsfiddle.net/L2CG2/ 我想让'2'引发事件。但是不是每次都明确地调用'on',更有另一个事件处理函数来抓取它并为我做这件事? – FabianCook 2013-03-20 01:28:11