我有一个 jQuery 应用程序,它查找特定的 div,并编辑其内部 HTML。在执行此操作时,它添加了几个带有 onclicks 的 div,旨在调用我的 JS 中的函数。
出于某种奇怪的原因,如果我在代码集中定义了要激活的函数,那么单击这些永远不会起作用。但是,在调用“alert("Testing");”时它工作正常。
我对此感到非常困惑,因为我过去能够使代码生成的 onclicks 正常工作。这里唯一的新东西是 jQuery。
代码:
function button(votefor)
{
var oc = 'function(){activate();}'
return '<span onclick=\''+oc+'\' class="geoBut">'+ votefor +'</span>';
}
代码中的其他地方:
var buttons = '';
for (var i = 2; i < strs.length; i++)
{
buttons += button(strs[i]);
}
var output = '<div name="pwermess" class="geoCon"><div class="geoBox" style=""><br/><div>'+text+'</div><br/><div>'+buttons+'</div><br/><div name="percentages"></div</div><br/></div>';
$(obj).html(output);
其他地方:
function activate()
{
alert("Testing");
}
最佳答案
您可能想要take a look at jQuery.live(eventType, eventHandler)
,每当创建对象时,它就会将事件处理程序绑定(bind)到对象(匹配选择器),例如:
$(".somebtn").live("click", myClickHandler);
关于Javascript Onclick 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4638235/