2011-01-09 5 views
2

매우 긴 옵션 목록을 선택 목록에 추가하려면 클릭시 추가하십시오. 목록이 여러 번 추가되지 않도록하고 싶습니다. 어떻게해야합니까? .one() : 한 번만 이벤트 핸들러를 실행하는 방법이있다한번만 누르기 허용

$("#skiresort").click(function(){ 
$("#skiresort").load("/v3/inc/review.php"); 
}); 

답변

7

$("#skiresort").one('click', function(){ 
    $("#skiresort").load("/v3/inc/review.php"); 
}); 
+0

동일한 버튼을 다시 클릭하지 못하게하고 싶지만 다른 버튼을 클릭하면 이전 버튼을 클릭 할 수 있어야합니다. 어떻게해야합니까? –

+0

@Uday : 마지막으로 클릭 한 버튼에 대한 참조를 보유하는 공유 변수를 사용하여 비교할 수 있습니다. –

+0

예. 나는 그것을 마침내했다. 나는 그것에 대한 어떤 기능도있을 수 있지만. –

2

펠릭스의 대답은 jQuery를위한 완벽한, 나는 단지 그것을 위해 일반적인 자바 스크립트 기술을 보여주기 위해이 추가 해요 : 이제

function runOnce(f) { 
    var called = false; 
    return function() { 
    if (!called) { 
     called = true; 
     return f.apply(this, arguments); 
    } 
    }; 
} 

이처럼 사용할 수 있습니다

var myNewFunction = runOnce(myFunction); // this does not run "myFunction", but returns a new one that will only run once. 

myNewFunction(1, 2, 3); // runs the "myFunction" and returns whatever it returns 
myNewFunction(1, 2, 3); // doesn't do anything, just returns undefined 
+1

+1 좋은 아이디어 ... –