我已经产生使用下面的方法在我的网页几个要素。 例如,
$("#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事件:
$(".fClick").click(function(){
alert("hey!");
});
它没有工作! 但是,如果我把的onclick功能的其他功能里面,后.dialog()吧,它的作品! 我有很多这种方式创建的元素,所以我不能把所有的onclick事件在一个单一的方法。 有没有办法解决? 我有.append方法同样的问题也是如此。
将其更改为.on
或.delegate
基于jQuery的版本使用的是..
在jQuery 1.7+的
$(document).on('click', '.fClick', function(){
alert("hey!");
});
对于较旧的jQuery版本使用委托
$(document).delegate('.fClick', 'click', function(){
alert("hey!");
});
使用on
,而不是click
:
$(".fClick").on('click',function(){
alert("hey!");
});
click
增加了点击处理程序.fClick
是存在,当你调用元素$('.fClick').click({...})
新.fClick
后来添加的元素不会有click事件。 但是,当你使用on
,所有.fClick
元素将有一个单击处理程序,即使它们是后来添加的。
在这里阅读更多: http://api.jquery.com/on/
再次调用$(文件)。就绪(函数(),并添加您的代码中有该文件被读取(刷新)再次,你可以直接申请你的代码存在。
什么维加说是完全的工作。 这里是一个暗示:我想在第二行有一个错误。 也许你可以使用addClass方法,因为你不能把ID或类渲染。 下面是一个例子:
var content = "<div>Hello, World</div>";
$("div").after(content);
$("last:div").addClass("mydiv");
和类将被添加,但我不知道,你可以添加一个id。