2010-07-23 7 views
1

요소의 클래스 속성이 변경되면 JQuery 코드를 실행해야한다. 예를 들어 처음에는 요소는 <div class="my-class">이됩니다. 새로운 클래스가이 사업부에 추가 될 때, (즉, <div class="my-class new-class">, 나는 JQuery와 코드를 실행해야합니다. 나는 JQuery와이 작업을 수행하려면 어떻게요소의 클래스 속성을 변경하기위한 Jquery 이벤트

? 이벤트 속성에 대한 있는가 변경?

답변

2

, 당신은 이런 식으로 뭔가를해야 할 것 : 할 수 없습니다

$(document).ready(function(){ 

    // Cache the required element 
    window.elementInQuestion = $('#element-that-changes-class'); 

    function checkClass(){ 
     if (window.elementInQuestion.hasClass('new-class')) { 
      // Trigger a custom event 
      $(document).trigger('elementHasClass'); 

      // If you need the check only until the first time the class appears 
      // you can cancel further checks here 
      clearInterval(window.classCheckerInterval); 
     } 
    } 

    // Check if an element has class every once in a while 
    window.classCheckerInterval = setInterval(checkClass, 100); 

    $(document).bind('elementHasClass', function(){ 
     // Your handler here 
    }); 
}); 
+1

용액을 사용 하였다. 하지만 if (window.elementInQuestion.hasClass ('new-class')) if if ($ ('element-that-changes-class'). hasClass ('new-class'))로 변경하면 if – Veera

0

캔트 '당신은 단지.

하나의 옵션이 LiveQuery 플러그인을 사용할 수 있습니다. 더 크로스 브라우저 노드 변경 이벤트가 없다? 클래스를 변경하는 기능에

+1

합니다. 왜냐하면 CSS 속성은 컨트롤이없는 외부 JS 함수에 의해 변경되기 때문입니다. – Veera

+0

어떻게 외부? 더 많은 정보를 제공 할 수 있습니까? –

+0

Google CSE가 반환하는 SERP를 개선하려고합니다. 따라서이 경우 Google의 JS가 요소의 속성을 수정하고 있습니다. 속성을 수정할 때 내 JS에 전화해야합니다. – Veera

0

을 기능을 결합 그것은 DOM이 주기적으로 변화를 찾고 검색과 의지합니다 변경 사항이 발생하면 이벤트를 발생시킵니다.

외부 함수 (예를 들어, 같은 사용자 정의 이벤트를) 클래스를 변경하면 당신이 이야기의 전혀 방법이없는 경우
관련 문제