Javascript Onclick不工作?

时间:2011-01-09 07:49:53

标签: javascript jquery onclick

我有一个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");
}

3 个答案:

答案 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();'