处理jQuery中附加元素的click事件
我使用以下方法在页面中生成了一些元素。 例如,
$("#button"+caption).click(function(){ var firstDisplay = '
'; $(firstDisplay).dialog(); });
当我为’fClass’创建一个onclick事件时,如下所示:
$(".fClick").click(function(){ alert("hey!"); });
它不起作用! 但是,如果我将onclick函数放在其他函数中,就在.dialog()之后,它就可以工作了! 我有很多以这种方式创建的元素,所以我不能将所有onclick事件放在一个方法中。 有没有办法解决? 我也遇到了与.append方法相同的问题。
根据您使用的jQuery版本将其更改为.on
或.delegate
。
截至jQuery 1.7+
$(document).on('click', '.fClick', function(){ alert("hey!"); });
对于较旧的jQuery版本,请使用委托
$(document).delegate('.fClick', 'click', function(){ alert("hey!"); });
使用而不是click
:
$(".fClick").on('click',function(){ alert("hey!"); });
click
添加单击处理程序到.fClick
当您调用$('.fClick').click({...})
时存在的元素$('.fClick').click({...})
。 .fClick
添加的新.fClick
元素将不具有click事件。 但是当你使用on
,所有.fClick
元素都会有一个点击处理程序,即使它们稍后添加。
点击此处了解更多信息: http : //api.jquery.com/on/
再次调用$(document).ready(function()并在那里添加代码。文档再次被读取(刷新),你可以在那里应用你的代码。
Vega所说的完全正常。 有一个提示:我认为在第二行有一个错误。 可能你可以使用addClass方法,因为你不能在渲染中放入id或类。 这是一个例子:
var content = "Hello, World"; $("div").after(content); $("last:div").addClass("mydiv");
并且将添加该类,但我不确定您是否可以添加ID。