问题描述
我使用以下方法在我的页面中生成了一些元素.例如,
I have generated few elements in my page using following method. For example,
$("#button"+caption).click(function(){
var firstDisplay = '<div id="firstDisp'+caption+'"><ul>';
for(var i=0;i<parents.length;i++){
firstDisplay=firstDisplay+'<li class="fClick">'+parents[i]+'</li>';
}
firstDisplay=firstDisplay+'</ul></div>';
$(firstDisplay).dialog();
});
当我像这样为fClass"创建 onclick 事件时:
and when i create an onclick event for 'fClass' like so :
$(".fClick").click(function(){
alert("hey!");
});
它不起作用!但是,如果我将 onclick 函数放在另一个函数中,就在 .dialog() 之后,它可以工作!我有很多以这种方式创建的元素,所以我不能将所有 onclick 事件放在一个方法中.有没有办法解决?我的 .append 方法也有同样的问题.
It does not works ! However, if i put the onclick function inside the other function, right after .dialog(), it works ! I have a lot of elements created this way, so I cannot put all onclick events in a single method. Is there any way around this? I am having the same problem with .append method as well.
推荐答案
根据你使用的 jQuery 版本,将其更改为 .on
或 .delegate
..
Change it to .on
or .delegate
based on the version of jQuery you are using..
从 jQuery 1.7+ 开始
$(document).on('click', '.fClick', function(){
alert("hey!");
});
对于较旧的 jQuery 版本,请使用委托
For older jQuery versions use delegate
$(document).delegate('.fClick', 'click', function(){
alert("hey!");
});
这篇关于处理 jQuery 中附加元素的单击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!