2013-05-08 2 views
1

다음 코드는 페이지가로드 될 때 클래스를 토글하고 Ajax 호출 후에는 작동하지 않습니다.jQuery .delegate not working

HTML ([field_map_location]는 드루팔 토큰) :

<div class="clearfix dir-map"> 
<a href="#" class="show">Map</a> 
<div id="slidingDiv" class="outside"> 
[field_map_location] 
</div> 
</div> 

자바 스크립트 :

<script type="text/javascript"> 
jQuery(function($) { 
$(document).ready(function() { 
    $('.dir-map').delegate('a', 'click', function(e) { 
     e.preventDefault(); 
     $(this).next('div').toggleClass('outside inside'); 
    }); 
}); 

}); 
</script> 

UPDATE 나는 다음과 같은 권장 솔루션을 시도하고있다했습니다 여전히하지 않습니다는 작업.

<script type="text/javascript"> 
jQuery(function($) { 
    $(document).delegate('.dir-map a', 'click', function (e) { 
     e.preventDefault(); 
     $(this).next('div').toggleClass('outside inside'); 
    }); 
}); 
</script> 

죄송합니다. 저는 noobie입니다. 따라서 AJAX 호출 코드를 제시하는 방법을 모르겠습니다. 이 html은 Drupal보기의 일부이며 AJAX 기능을 사용하고 있다고 말할 수 있습니다.

+3

작동하지 않는 Ajax 호출 코드를 보여줍니다. –

+2

(당신의 문제에 대한 대답이 아니지만)'ready()()() 준비된 처리기로 – Ian

+1

Ajax 통화는 어디에 있습니까? 무엇이 바뀌나요? – JJJ

답변

1

드루팔 (Drupal은 때때로 AJAX로 재미있을 수 있습니다. ... 도움이 될 드루팔 자신의 JS 행동 시스템에 접선

(function($) { 
    Drupal.behaviors.custom = { 
    attach: function(context, settings) { 
     $('.dir-map a', context).click(function (e) { 
     e.preventDefault(); 
     $(this).next('div').toggleClass('outside inside'); 
     }); 
    } 
    }; 
})(jQuery); 

다소 구식 이벤트 부착이 jQuery를 1.4.2 여전히 드루팔 7 선박 때문이다.

+0

감사합니다! 네가 자리하고있어. 자,이 방법을 배워야합니다. – David

+0

[이 링크] (http://drupal.org/node/304258)는 매우 귀중할 것입니다 :) (Drupal.behaviors 실용적인 예를 찾으십시오.) – Clive

+0

링크를 제공해 주셔서 감사합니다. 이 코드에 jQuery Update에 문제가 있습니까? – David