2011-01-09 88 views
0

我有一個jQuery應用程序,它可以找到一個特定的div,並編輯它的內部HTML。正如它這樣做,它增加了幾個div與onclicks旨在調用我的JS功能。Javascript Onclicks無法正常工作?

由於一些奇怪的原因,如果我的代碼集中定義了一個要激活的函數,點擊這些將永遠不會工作。但是,調用「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"); 
} 
+13

照顧張貼一些代碼? – 2011-01-09 07:51:05

+0

您是否正確加載了您的jQuery文件? – lnrbob 2011-01-09 09:39:38

+0

您是否在同一時間使用任何其他js庫? – 2011-01-09 19:26:10

回答

2

您可能要take a look atjQuery.live(eventType, eventHandler),結合事件處理程序時,他們正在創建的對象(選擇匹配),例如:

$(".somebtn").live("click", myClickHandler); 
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> 
0

更改此:

var oc = 'function(){activate();}' 

代替:

var oc = 'activate();'