以下代码用于在页面加载时切换类,但在Ajax调用后不起作用。
html([field_map_location]是一个Drupal令牌):
<div class="clearfix dir-map">
<a href="#" class="show">Map</a>
<div id="slidingDiv" class="outside">
[field_map_location]
</div>
</div>
javascript:
<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>
更新 我尝试了以下推荐的解决方案,但仍然无效。
<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功能。
答案 0 :(得分:1)
Drupal有时可能很有趣;连接到Drupal自己的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);
附带有些过时的事件是因为Drupal 7仍然附带jQuery 1.4.2。