2009-04-16 7 views
2

는 누군가가 지정하는 이벤트 핸들러의 차이) (바인드를 사용하여 무엇을 말해 줄 수 :jQuery에서 bind() 및 each()를 사용하여 이벤트 처리기를 할당하는 것의 차이점은 무엇입니까?

$(function(){ 
      $('someElement') 
      .bind('mouseover',function(e) { 
      $(this).css({ 
         //change color 
         }); 
    }) 
    .bind('mouseout',function(e) { 
     $(this).css({ 
        //return to previous state 

       });  
    }) 
    .bind('click',function(e) { 
     $(this).css({ 
        //do smth. 
       });  
    }) 

}); 

과 같은 작업을 위해()를 각각 사용 :

$('someElement').each(function(){ 

     $(this).mouseover(function(){$(this).css({/*change color*/}) 
        .mouseout(function(){$(this).css({/*return to previous state*/}); 
        });  
       }); 
    }); 

당신을 감사합니다.

+0

두 번째 예는 '각'방법을 설명하지 않습니다. 그냥 알다시피 ... – KyleFarris

+0

오, 고쳐 줄게. ty – chosta

답변

6

당신이 준 예제에서, 나는 실제로 당신이 'bind'방법과 'event'방법을 사용하는 사이에 어떤 차이가 있는지 실제로 묻고 있다고 생각합니다.

$('.some_element').bind('click',function() { /* do stuff */ }); 

...이 : 예를 들어

사이의 차이점은 무엇입니까?

$('.some_element').click(function() { /* do stuff */ }); 

답변은 실제로 중요하지 않다는 것입니다. 그것은 선호의 문제입니다. 이벤트 메소드는 구문 적으로 더 간단하고 타이핑이 덜 필요하지만, 실제로는 차이점이 없습니다. 같은 작업에 두 개 이상의 이벤트를 연결해야하는 경우 속기 바인딩을 사용할 수 있기 때문에 바인딩 메서드를 사용하는 것을 선호합니다. 또한 이벤트를 '언 바인드 (unbind)'해야하는 경우/이해하는 것이 더 간단합니다. 실제 질문 "는 '각'방식과 '바인딩'방식의 차이는 무엇"요구하시는에서 ... 글쎄, 그건 완전히 다른 짐승, Difference between .bind and other events

그러나 :

는 여기를 참조하십시오. '바인딩'과 '이벤트'방법은 많은 빨리 CSS 선택기 엔진을 사용하기 때문에

당신은 정말 이벤트를 부착하기 위해 '각'방법을 사용해서는 안됩니다 (jQuery의 경우, 그것은 지글 지글 엔진을 사용).

좀처럼 (또는 전혀)있다이 경우 :

$('.some_element').each(function() { $(this).click(function() { /* do something */ }); }); 

가 ... 이것보다 더 :

$('.some_element').bind('click',function() { /* do stuff */ }); 
+0

그것이 내가 알아야 할 필요가있는 것입니다. 감사합니다. – chosta

+0

반가워요. 반갑습니다! – KyleFarris