2011-01-09 6 views
0

특정 div를 찾고 해당 내부 HTML을 편집하는 jQuery 응용 프로그램이 있습니다. 이 작업을 수행 할 때 내 JS에서 함수를 호출하도록 설계된 onclicks가있는 여러 div가 추가됩니다.자바 스크립트 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

몇 가지 코드를 게시 하시겠습니까? –

+0

jQuery 파일을 올바르게로드 했습니까? – lnrbob

+0

다른 js 라이브러리를 동시에 사용하고 있습니까? –

답변

2

당신은 그들이가 생성 될 때마다 오브젝트 (선택기 일치)에 이벤트 핸들러를 결합 take a look atjQuery.live(eventType, eventHandler), 할 수 있습니다, 예를 들면 :

$(".somebtn").live("click", myClickHandler); 
+0

고맙습니다. :) 이것은 내가 그것을 필요로했던 단지 것을했다! –

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();' 
+0

@ Geoges_Oates_Larsen 이것은 코드를 수정하지만, afEkenholm의 접근 방식은 HTML에서 JS를 "제거"하는 가장 깨끗한 방법입니다 –

관련 문제