2013-02-28 1 views
0

나는 다음과 같은 코드를 가지고있다. 내가 1을 클릭하면 1 onclick 함수를 비활성화하고 나머지는 사용할 수 있어야한다. 2를 클릭하면 1과 3에 onclick 함수가 필요하지만 2 그것을 필요로하지 않습니다.onclick 함수를 제거하고 jquery를 통해 동일한 함수를 사용하여 활성화하는 방법은 무엇입니까?

나는 페이지 매김과 같은 성취가 필요합니다. 어떻게 할 수 있습니까?

<div class="test"> 
    <a href="javascript:void(0);" onclick="test1(1);">1</a> 
    <a href="javascript:void(0);" onclick="test1(2);">2</a> 
    <a href="javascript:void(0);" onclick="test1(3);">3</a> 
</div> 

function test1(val) 
    { 
    $(this).attr('onclick','').unbind('click'); 
      alert("hai"); 
    } 

그러나 나는 항상 경고를받습니다.

답변

1

마지막으로 클릭 한 버튼에서 기능을 사용하지 않으려한다고 생각합니다. 당신은 할 수있는이 방법이 :

<div class="test"> 
    <a href="javascript:void(0);" onclick="test1(1);">1</a> 
    <a href="javascript:void(0);" onclick="test1(2);">2</a> 
    <a href="javascript:void(0);" onclick="test1(3);">3</a> 
</div> 

자바 스크립트 할

var lastClickedInt; 
function test1(val) 
    { 
    if (val !== lastClickedInt) { 
     lastClickedInt = val; 
     alert("hai"); 
    } 
    } 
+1

@Madbreaks - 편집에 대한 감사, 훨씬 더 :) – lnrbob

-1

가장 좋은 방법은 클래스와 이벤트 위임을 사용하는 것입니다 :

<div class="test"> 
    <a href="javascript:void(0);" onclick="test1(1);">1</a> 
    <a href="javascript:void(0);" onclick="test1(2);">2</a> 
    <a href="javascript:void(0);" onclick="test1(3);">3</a> 
</div> 

$('div.test').on('click','a',function(e) { 
    if(!$(this).hasClass('disabled')) { 
    //you're event delegation code 
    } 

    //disable this link and "enable" it's siblings 
    $(this).addClass('disabled').siblings().removeClass('disabled'); 
}); 
관련 문제