이 코드에서 알 수없는 것, 범위가 좁은 문제라고 생각합니다.이 jQuery 범위 오류를 수정하는 방법은 무엇입니까?
나는 다음과 같은 자바 스크립트 내가 만들 수 있기 때문에 다음
<div id="dialog" title="Message Info"></div>
<input type="button" id="btnCommand1" value="Command 1" onclick="javascript: showMessage('Outgoing', 1000487874')" />
<input type="button" id="btnCommand2" value="Command 2" onclick="javascript: showMessage('Incoming', 2000237851')" />
나는 또한 jQuery를 통해 클릭 이벤트를 바인딩 할 수 있음을 이해
하지만 처럼 전화를 원하는
<javascript language="javascript>
$(function() {
$("#dialog").dialog({
autoOpen: false
});
function getMessage(direction, msgId) {
return "This is an " + direction + " message with ID: " + msgId;
}
function showMessage(direction, msgId) {
$("#dialog").text(getMessage(direction, msgId));
$("#dialog").dialog('open');
}
});
</script>
을 니펫을했다 그 버튼을 동적으로 위에서 언급 한 것처럼 호출해야합니다. showMessage()가 정의되지 않은 오류가 발생하는 문제. 일반적으로 jQuery scope $ (function() {}) 내에 정의 된 메소드는이 범위 밖에서 접근 할 수 없다는 것을 알았다. 어떻게 해결할 수 있을까요?
버튼을 동적으로 만들더라도 클릭 이벤트를 바인딩 할 수 있습니다. jquery.live를 사용하거나 함수를 위임하면 잘됩니다. – corroded