2014-10-29 1 views
-2

외부 이벤트를 클릭하여 첨부 I가 내 ASPX 페이지에서 다음 버튼 - 그러나 내 global.js에 파일을이 이벤트를 이동하려면, 예상대로 작동하고 경고를 제공페이지

$('#btnHello').click(function() { 
    alert('Hi there'); 
}); 

똑같은 논리로 ASPX 페이지 상단에서이 파일을 참조하지만 이벤트가 실행되지 않습니다. 이것을 어떻게 할 수 있습니까?

답변

0

와 코드를 포장하기 요소 #btnHello.

그러나 실행할 때 #btnHello이로드되지 않았습니다. 그것은 아직 존재하지 않습니다. 그래서 아무것도 연결되지 않습니다.

문서가 로딩이 완료 될 때까지 당신이 코드의 실행을 연기 맨 끝에 코드를 실행하거나 (더 안정적으로, 나는 생각한다)에 의해 중이 문제를 가져올 수 있습니다

$(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
}); 

당신은이를 둘 것 global.js하지만 페이지가 완전히로드 될 때까지 실행되지 않습니다.

1

사용 이벤트 위임 :

$(<parent_of_btnHello>).on("click", "#btnHello", function() { 
    alert('Hi there'); 
}); 

..where <parent_of_btnHello> 핸들러를 추가 할 때로드 된 요소해야한다. 예를 들어 :

$("body").on("click", "#btnHello", function() { 
    alert('Hi there'); 
}); 

또한 $(document) 또는 $("html") 또는 버튼의 용기 일 수있다, 즉, global.js 파일에서 코드가 실행을로드됩니다.

this answer도 확인할 수 있습니다.


또 다른 방법은 $(document).ready(function() { ... });의 내부에 초기 코드를 삽입하는 것입니다

$(document).ready(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
}); 
0

대부분의 경우이 이벤트를 결합하려고하는 이러한 요소가 없다. 당신은 당신의 경고 기능을 접선하고

$('#btnHello').click(function() { 
    alert('Hi there'); 
}); 

:

봅니다 당신이 실행하는 것은 매우 초기에 기능입니다 document.ready

$(function() { 
    $('#btnHello').click(function() { 
     alert('Hi there'); 
    }); 
})