我有一个jQuery应用程序,它找到一个特定的div,并编辑它的内部HTML。正如它所做的那样,它添加了几个div,其中onclicks旨在调用我的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");
}
答案 0 :(得分:2)
您可能需要take a look at jQuery.live(eventType, eventHandler)
,它会在创建对象时将事件处理程序绑定到对象(匹配选择器),例如:
$(".somebtn").live("click", myClickHandler);
答案 1 :(得分:1)
按照一个虚拟的例子,可能这可以帮到你。
<!DOCTYPE html>
<html>
<head>
<style>
</style>
<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script type="text/javascript">
$(function() {
$('.go-right').click(function(){
c="Hello world";
$("#output").html(c);
});
});
</script>
</head>
<body >
<div id="output"></div>
<a class="go-right">RIGHT</a>
</body>
</html>
答案 2 :(得分:0)
改变这个:
var oc = 'function(){activate();}'
改为:
var oc = 'activate();'