Javascript jQuery事件委派&PJAX事件不起作用
我有一个Rails 3.2应用程序,带有用于显示水平导航菜单的菜单切换div。单击后退或前进按钮后,单击div将不再切换菜单。我曾尝试使用事件委派和pjax事件来解决这个问题,但似乎没有任何效果 当未使用事件委派和/或pjax事件时,该切换可在完全刷新和pjax请求上正常工作,但在后退/前进按钮上会中断。当我在不同的组合中添加委派或pjax事件时,就会出现问题。以下是我尝试过的几种不同的脚本。我得到了非常奇怪的结果,有时工作,而不是其他。。。我担心我可能没有正确地组合它们。这些都包装在特定视图上的脚本标记中,而不是在application.js中。谢谢你的帮助 一,。无活动授权,除后退/前进外有效 二,。对于事件委派,有时有效,从不用于后退/前进 三,。pjax:end事件在文档中就绪 四,。使用pjax:end-outside-document-readyJavascript jQuery事件委派&PJAX事件不起作用,javascript,jquery,ruby-on-rails,pushstate,pjax,Javascript,Jquery,Ruby On Rails,Pushstate,Pjax,我有一个Rails 3.2应用程序,带有用于显示水平导航菜单的菜单切换div。单击后退或前进按钮后,单击div将不再切换菜单。我曾尝试使用事件委派和pjax事件来解决这个问题,但似乎没有任何效果 当未使用事件委派和/或pjax事件时,该切换可在完全刷新和pjax请求上正常工作,但在后退/前进按钮上会中断。当我在不同的组合中添加委派或pjax事件时,就会出现问题。以下是我尝试过的几种不同的脚本。我得到了非常奇怪的结果,有时工作,而不是其他。。。我担心我可能没有正确地组合它们。这些都包装在特定视图上
我将事件委托脚本移到了document ready中的application.js
$(document).ready(function(event) {
$('body').on('click', '.menu-toggle', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});
$(document).ready(function() {
$(document).on('click', '.menu-toggle', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});
$(document).ready(function() {
$('.menu-toggle').on('click', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
$(document).on('pjax:end', function() {
$('.menu-toggle').on('click', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});
});
$(document).ready(function() {
$(document).on('click', '.menu-toggle', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});
$(document).on('pjax:end', function() {
$('.menu-toggle').on('click', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});
$(document).ready(function(event) {
$('body').on('click', '.menu-toggle', function () {
$('.menu-toggle').toggleClass('menu-toggle-open');
$('.menu-wrap').toggleClass('menu-open');
});
});