2012-03-07 8 views
0

div에 부분을 추가하는 ajax 작업 링크가 있습니다. ActionLink 여러 번 실행 중

$('#hypNewCriteria').click(newClick); 
... 
var newClick = (function() 
{ 
    console.log('newClick'); 
    $.ajax(this.href, { 
     success: function (result) 
     { 
      ... 
     } 
} 
첫 페이지로드에

그 모든 부분에

은 내가 document.ready를 통해 실행하고, (아마 불필요) 오전 반환

$('#hypNewCriteria').click(newClick); 

... actionlink 후속 클릭; 리턴되는 부분 뷰의 수는 매번 1 씩 증가합니다. 7 번의 클릭 후 8 개의 부분을 반환합니다. 나는 단지 1 부분 만 추가 할 것으로 기대한다.

.click (newClick) 이벤트가 추가되고있는 것 같습니다. 다른 클릭 이벤트를 설정하기 전에 하나의 클릭 이벤트 만 설정하거나 이벤트를 지울 수 있습니까?

답변

2

당신은 이벤트 바인딩을 해제하는 jQuery의 결합 해제() 메서드를 사용할 수 있습니다.

http://api.jquery.com/unbind/

은 또한 라이브() jQuery를 방법으로 보일 것이다. 이것은 페이지에 추가 된 현재 및 미래의 모든 요소에 이벤트를 바인딩하며, 부분을로드하거나 이벤트가 항상 추가되도록 요구하는 항목을 추가하는 페이지에 유용합니다.

+0

안녕하세요. 그들이 나를 위해 일하는지 알게 될 것입니다. –

+1

문제는 없습니다. 나는 그것이 당신이 찾고있는 것이라고 생각하지 않는다. 그러면 이벤트가 한 번만 실행되고 자체 바인딩이 해제됩니다. 링크를 여러 번 클릭 할 수있게하려면 첫 번째 클릭 후 링크가 비활성화됩니다. –

+0

라이브 록! 감사. –

1

.one()을 시도해보십시오

$('#hypNewCriteria').one('click', newClick); 
관련 문제