【发布时间】:2013-05-08 16:30:56
【问题描述】:
以下代码可在页面加载时切换类,但在 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 功能。
【问题讨论】:
-
显示使其无法工作的 Ajax 调用代码。
-
(不是你的问题的答案,但是)没有必要使用
jQuery(function($) { $(document).ready(function () {}); });- 你只是用一个准备好的处理程序包装一个准备好的处理程序。 -
Ajax 调用在哪里?它有什么变化?
-
您确定
.dir-map元素是稳定不变的吗?您可能需要使用更高级别的容器 -
至少为了验证尝试这个
$(document).delegate('.dir-map a', 'click', function (e) {可能在ajax 调用中你正在覆盖.dir-map
标签: javascript jquery drupal