2013-03-21 3 views
0

이 주제가 이미 비슷한 주제로 논의되었지만 찾을 수있는 해결책이 없기 때문에 내가 가진 문제를 이해하는 데 도움이되지 않습니다.자바 스크립트 (jquery) - 클릭 이벤트의 범위 문제

여기 내 단순화 된 클래스이며 일반적으로 정의한 클래스입니다. 클릭 이벤트 this.inuse 내부의 브레이크 포인트에

방화범

BottomNav = function() { this.init(); } $.extend(BottomNav.prototype, { init: function(){ this.insue = false; $(".up").click($.proxy(function() { var thisinuse = this.inuse; if(this.inuse===false) { this.inuse = true; this.moveSlider('up'); } },this)); }, moveSlider: function(d){ //some instructions alert('move slider'); } }); $(document).ready(function() { new BottomNav(); }); 
은 정의되지 않습니다! (이건 내 문제입니다.) 내 범위는 시계 (firebug의 오른쪽 패널)에서 잘 보입니다. this.insue는 틀림없이이어야합니다. - 아직 이미지를 게시 할 수 없습니다!

누군가가이 매우 이상한 행동을 식별하는 데 도움이 될 수있어서 감사 할 것입니다.

클릭 이벤트 정의를 다른 함수에 넣는 것처럼 일부 직원이 시도했지만 작동하지 않습니다. 나는 바인딩의 다른 방법을 시도하고 그것은 너무 작동하지 않습니다.

그러나 아래 예제는 제가 작성한 다른 여러 클래스에서 작업하고 있습니다. 이벤트, 효과에서 클래스 범위에 액세스 할 수있었습니다.

+0

대신에 클릭하고 참조'thisinuse'의 외부에서 'var thisinuse = this.inuse;'를 클릭하십시오. – ashley

답변

0

this.inuse 외부 변수 click 이벤트 처리기에 할당하고 처리기 내에서 변수를 사용할 수 있습니다.

2

그냥 오타입니다 :

this.insue = false; 

변경 insueinuse과 재산은 그것과는 별도로

:-)가있을 것입니다, 변수 thisinuse 여기에서 매우 불필요하다. 그리고 booleans ...

+0

:) 도와 주셔서 감사 드리며, 미안 해요. 쓸데없는 게시물. – Tigoes

+0

예, 그 변수는 내가 한 테스트의 일부 였으므로 아래에 중단 점을 둘 수 있습니다. 나는 오타가 잘못되었음을 눈치 채지 못했다. 감사합니다. – Tigoes