2010-02-10 4 views
1

저는 현재 ajax 호출을 발생시키는 클릭 이벤트로 작업하고 있습니다. 약간의 폼 데이터 유효성 검사를 처리 할 작은 플러그인을 활용하고 싶습니다. 문제는 플러그인의 ajax 호출 및 유효성 검사 기능이 동일한 클릭 이벤트에서 발생한다는 것입니다.jQuery - 오버랩하는 클릭 이벤트 ... 하나를 방지하는 방법

결국, 플러그인에서 Ajax 기능을 무시하고 싶습니다. 나는 그것에 대해 어떻게 가야할지 잘 모르겠다. 어떤 제안? 전체 플러그인을 게시 할 수는 없지만 여기에 간단한 샘플이 있습니다.

아약스 전화 여기에 해고 :

$('p.thisClass').live('click',function() { 
    //Ajax Fires here 
}); 

플러그인 조각 여기 :

config.button.live('click', function() { 
    someFunction(); 
    // Stop Other click event from firing 
}); 

이이 볼 수있는 몇 가지 방법이 있지만, 결국, 내가 플러그인보다 우선 할 ajax를 발생시키는 클릭. 이 일을 성취하는 방법에 대한 생각?

감사

+0

재정의하고 우선 순위를 지정하면 플러그인을 먼저 실행 한 다음 아약스를 실행하거나 플러그인 만 원하고 다른 클릭은 전혀 실행되지 않겠습니까? – neatlysliced

+0

플러그인 자체가 페이지로드시 호출됩니다. 클릭 이벤트에 따라 파생 될 수 있으며 파급되어야합니다. 기본적으로 대상 요소를 클릭하면 플러그인의 클릭 이벤트가 실행되고 같은 요소의 다른 클릭 이벤트가 발생하지 않도록 할 수 있습니다. – SDG

답변

0

내가 당신에게 당신은 단지 첫 번째 첨부하는 이벤트 핸들러, 확인해야 단지

return false; 

를 JQuery와 이벤트를 취소합니다.

하지만 훨씬 나은 해결책은 제출시가 아니라 변경시에 유효성을 검사하는 것입니다. 이렇게하면 사용자가 버그를 수정하는 것이 훨씬 빠르고 짜증나게됩니다.

+0

플러그인에 false를 추가하면 플러그인의 클릭 이벤트가 중지됩니다. ajax 함수에서 false를 반환하면 발사가 중지됩니다. 나도 내가 원하는 것을 성취하지 못한다. 플러그인에서 해당 요소의 다른 클릭 이벤트를 시작하고 재정의하려고합니다. 이들은 완전히 별개의 두 기능입니다. 이것은 진정한 양식 유효성 검사 플러그인이 아니며 변경시 유효성 검사 변경이 적절하지 않습니다. – SDG

0

바인딩 기능을 제어 할 수 있습니까? 그렇다면, 참조 jQuery의 결합 해체 또는 죽는 방법 : 등을 사용하여 Unbind Die

, 당신은 변수에 원래 아약스 클릭 이벤트를 할당 할 수 및/후 때어 그냥 하나의 다이 :

예 :에 단지 하나의 이전 바인드 처리기를 바인딩 해제 로 두번째 인자 기능을 건네

 var foo = function() { 
    // code to handle some kind of event 
    }; 

    $("p").bind("click", foo); // ... now foo will be called when paragraphs 
are clicked ... 

    $("p").unbind("click", foo); // ... foo will no longer be called. 
0

첫 번째 클릭 후 버튼을 사용 중지하셨습니까?

여러 제출 문제를 해결하는 것처럼 저에게 들립니다.

관련 문제