사용자 상호 작용에 따라 가끔씩 메뉴를 다시 작성하는 객체를 만들려고합니다. 내가하고있는 방식은 새 메뉴 항목을 복제하고 오래된 메뉴 항목을 삭제하는 것입니다. 이것은 특정 클래스의 div 인스턴스를 새로 도입한다는 것을 의미합니다. 즉, 클래스에 영향을 미치는 jQuery를 다시로드해야 함을 의미합니다.jQuery가 작동하지 않는 동일한 obj의 메소드 호출
아래 예제에서 메뉴 항목을 클릭하면 "TypeError : this.objMethod가 함수가 아닙니다."가 표시됩니다.
어떻게 jQueryClick 메서드를 호출하여 objMethod를 호출 할 수 있습니까? 이 문제는 범위 문제라고 생각하지만 jQuery 함수 자체를 넘어서는 방법을 파악할 수는 없습니다.
function myObj(){
this.jQueryClick = function(){
$('.menu-item').click(function(){
this.objMethod();
})
}
this.objMethod = function(){
alert('hounds released');
}
this.jQueryClick(); // will be called whenever the menu is rebuild
}
newObj = new myObj;
이 같은 jQuery를 함께 외부 objMethod를 호출하는 경우 :
$('.menu-item').click(function(){
newObj.objMethod();
})
그것은 작동하지만, 그 초기 메뉴 작동하고 다시 것하지 않을 때. 대한 jQuery
이벤트를 동적 요소에 바인딩하는 방법을 배워야 할 것 같습니다 (['jQuery.on'] (http://api.jquery.com/on/) 참조) – Jamiec
당신이 옳은 것처럼 보입니다! 객체 자체에 jQuery를 통합하는 것보다 훨씬 더 우아한 솔루션입니다. 감사합니다 챔피언 : O) –
안녕하세요. 문제 없다. 죄송합니다 (다시 읽는 것에 대한) 내 의견은 약간 멍청했다. – Jamiec