1

以下代码用于在页面加载时切换类,但在 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>

抱歉,我是菜鸟,所以我不知道如何向您展示 AJAX 调用的代码。我可以告诉你,这个 html 是 Drupal 视图的一部分,我正在使用它的 AJAX 功能。

4

1 回答 1

1

Drupal 有时可以用 AJAX 来搞笑。挂钩 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。

于 2013-05-08T17:45:31.483 回答