2013-04-18 42 views
0

这里interferring是我的代码:location.reload()在网站的前端与网站的管理员后台

// Reload screen after submission and completion of AJAX actions 
$('.view-whiteboard, .view-whiteboard-full').ajaxStop(function() { 
    location.reload(); 
}); 

我有这样的代码在我的Drupal网站的前端,但由于某种原因,工作时,我提交/保存任何东西在后台管理面板中,上面的代码片段使页面重新加载。

我很困惑,为什么它这样做,因为我已经定义了代码中的类名,该代码应该是特定于前端中的表单的。

我在上面的代码中缺少一些东西,所以我在每个表单提交上触发了location.reload()?

任何帮助将是伟大的。谢谢 -

回答

0

从jQuery 1.8开始,应该只将.ajaxStop()方法附加到文档中。您可以通过创建运行ajaxStop一次。点击功能解决这个问题:

$(document).ready(function(){ 
    $(".view-whiteboard, .view-whiteboard-full").click(function(){ 
     $(document).one("ajaxStop", function() { 
      location.reload(); 
     }); 
    }); 
}); 

否则,只是VS管理员主题分开公众,使他们不使用相同的JavaScript(必须禁用叠加模块)。

+0

嗨帕特里克。谢谢回复。你知道当使用管理员覆盖模块时,将js与admin分开的最佳方法是什么?换句话说:在使用该模块时,是否仍然可以在公共场所和管理员之间分开js?如果没有,你知道另一个我可以使用的jQuery AJAX方法,它不会定位文档,而只是定位具有特定类名的元素吗? – user2266174

+0

我用一次ajaxStop测试了一个点击函数。这应该够了吧。见上面的编辑。 –

+0

谢谢帕特里克。这就是诀窍! – user2266174