2012-11-13 2 views
1

change 이벤트를 수신하는 여러 개체가 있지만 지정된 순서대로 실행해야합니다.이벤트 콜백의 버블 오더를 정렬 할 수 있습니까?

jQuery에서 바인드 된 여러 객체의 거품 순서를 사용자 정의 할 수 있습니까?

+1

그들은 DOM을 통해 위쪽으로 버블됩니다. – Shmiddty

+0

당신이 원하는 것을 보여주기 위해 예제를 설정할 수 있습니까? – Shmiddty

+0

Nope. 그것은 거품을 일으킬뿐입니다. 꼭대기에 물건을 태우는 데 쓸 수는 있지만, 그 물건이 왜 당신의 특정한 순서대로 있어야 하는지를 말해 준다면 더 좋을 것입니다. – PeeHaa

답변

1

아니요, 이벤트 거품 순서를 사용자 정의 할 수 없습니다.

원하는 효과를 얻으려면 jQuery 사용자 지정 이벤트을 권장합니다.

예 :

$("#YOURELEMENT").trigger('CUSTOMEVENT'); //create a new custom event 
$("#YOURELEMENT2").bind('CUSTOMEVENT',function(e){ ... }); //listen for new custom event 

는 여기에 good tutorial입니다.

+1

따라서 사용자 지정 이벤트는 인덱싱을 통해 처음 수행 된 작업을 토글합니다. 영리한 건축 아이디어는 여기에 .. – Trip

1

내가 경험 한 한, 할당 된 기능을 참조하는 모든 핸들러를 저장하는 핸들러 배열이 있습니다. 당신이 이벤트에 대한 새로운 기능을 추가 어느 때, 그것은 다음과 같은 코드를 의미 배열의 마지막에 배치됩니다 : "click" 이벤트가 트리거 될 때

$("SomeElement") 
.live(
    { 
     click: function() 
     { 
      // This is handler named A. 
      alert("A"); 
     } 
    } 
); 

$("SomeElement") 
.live(
    { 
     click: function() 
     { 
      // This is handler named B. 
      alert("B"); 
     } 
    } 
); 

B는 후 을 표시됩니다.

하지만 당신은 장소를 변경할 때 : "click" 이벤트가 트리거 될 때

$("SomeElement") 
.live(
    { 
     click: function() 
     { 
      // This is handler named B. 
      alert("B"); 
     } 
    } 
); 

$("SomeElement") 
.live(
    { 
     click: function() 
     { 
      // This is handler named A. 
      alert("A"); 
     } 
    } 
); 

B가 전 (before) 을 표시됩니다.

자바 스크립트 코드가 위 아래 방향에서 실행되기 때문에 추가하는 핸들러를 이런 방법으로 주문할 수 있습니다. 유일한 방법이라고 생각합니다.

희망이 있습니다.

건배