2012-02-22 4 views
-2

동적 함수를 만들기 위해 노력하고 있지만 JS 함수 내부에서 JQuery 코드를 실행할 수 없기 때문에 문제가 발생합니다. 나는 작동 예제 here을 가지고있다.JavaScript 함수에서 JQuery를 실행하는 방법

두 번째 예가 here입니다. 이 전화 기능

$('#btnAdd').click(function() { 

: 두 JsFiddle의 유일한 차이 나는에서 호 전환 기능을한다는 것이다

function addBtn(){ 

및 delBtn에서 동일. 이유는 내가 이것을하고 싶어 그래서 내가 다른 질문 필드 또는 답변 필드를 추가하려면 알고 있는지 인수를 전달할 수 있습니다.

+2

무엇이 문제입니까? – gdoron

+0

JavaScript 함수에서 JQuery를 실행하는 방법 – user1082764

+0

모든 자바 스크립트 코드와 동일합니다 ... jQuery는 자바보다 추상화 된 것으로, 일종의 마법이 아닙니다. – gdoron

답변

3

jsFiddle은 기본적으로 클로저 안에 JavaScript 코드를 래핑합니다 (즉 함수는 전용 변수입니다). "랩 없음 (본문)"을 선택해야합니다 : http://jsfiddle.net/UpEvK/2/.

+0

o, 나는 이것이 jsFiddle 문제라는 것을 깨닫지 못했습니다. 나는 그걸로 어떤 문제를 보지 못했 사촌 좌절했다. 정말 고맙습니다! – user1082764

0

입력하신 두 코드 스 니펫은 기능상 다릅니다.

실제로 클릭 이벤트 등록하고이 경우 '기능'에서

$('#btnAdd').click(function) 

단지 콜백 함수, 클릭 이벤트가 트리거 될 때 호출하려는 함수의 이름입니다. 그래서 두 번째 JS 바이올린 함께 작동하도록 다음을 수행해야합니다 :

$('#btnAdd').click(addBtn); 

당신은 우리에게 우리가 제공 할 수 있습니다 당신이 실제로 코드로 무엇을하려고에 대해 좀 더 많은 정보를 제공 할 수있는 경우 더 자세한 답변.

+0

아, 죄송합니다, 두 번째 JSFidle에서 html로 onclick 속성을 추가했는데 pimvdb의 답변이 정확하지 않았습니다. –

0

마크 업에서 해당 코드를 제거합니다. 당신은 사용할 수 있습니다

$('#btnAdd').click(function() { 
    addBtn(); 
}); 

을 지금은 여러 가지고 있기 때문에 : 마크 업에서 클래스 = 'btnAdd'을 넣어하지의 onclick 핸들러 및 사용 :

$('.btnAdd').live('click',function() { 
    addBtn(); 
}); 

새로운 마크 업 :

<input class="btnAdd" type="button" value="Add Question" /> 

편집 : 이제 최종 SCRIPT 모두 지원 :

$('.btnAdd,#btnAdd').live('click',function() { 
    addBtn(); 
}); 

1.7.1 jQuery 사용자를위한 참고 사항; 사용 :

$(document).on('click','.btnAdd,#btnAdd',function() { 
    addBtn(); 
}); 
관련 문제