javascript - 除非在页脚,否则 jQuery 不起作用

标签 javascript jquery html

我的 jQuery 确实无法工作,除非它位于我网站 HTML 的页脚中。为什么是这样?我以前从未遇到过这个问题,所以我不确定是什么原因造成的。 我的 jQuery:

$('#trigger').click(function(e){
  var that = $(this);
  var wrap = that.parents('.wrap');
  that.toggleClass('open');
  $('.menu .sub-menu').removeClass('open');
  $('.menu').toggleClass('open');
  $(document.documentElement).toggleClass('menu-open');

   //console.log('clicked!');
  e.preventDefault();
});
var sub_parent = $(".sub-parent > a");
var sub_menu = $('.sub-menu');
sub_parent.click(function(){
  var that = $(this); //cache when you can
  var parent_menu = that.parents('.menu');
  var menu_index = parent_menu.index();
  var current_item = that.next('.sub-menu');
  //console.log(parent_menu);
  parent_menu.addClass('sub-level1-open');
  current_item.addClass('open');
});

var sub_back = $('.sub-menu--back');
sub_back.click(function(){
  var that = $(this);
  var menuIndex = that.parent().index();
  var currentItem = that.parent('.sub-menu');
  var parent_menu = that.parents('.menu');
  currentItem.removeClass('open');
  parent_menu.removeClass('sub-level1-open');
});

谢谢

最佳答案

$(document).ready(function(){
    $('#trigger').click(function(e){
        var that = $(this);
        var wrap = that.parents('.wrap');
        that.toggleClass('open');
        $('.menu .sub-menu').removeClass('open');
        $('.menu').toggleClass('open');
        $(document.documentElement).toggleClass('menu-open');

        //console.log('clicked!');
        e.preventDefault();
    });

    var sub_parent = $(".sub-parent > a");
    var sub_menu = $('.sub-menu');
    sub_parent.click(function(){
        var that = $(this); //cache when you can
        var parent_menu = that.parents('.menu');
        var menu_index = parent_menu.index();
        var current_item = that.next('.sub-menu');
        //console.log(parent_menu);
        parent_menu.addClass('sub-level1-open');
        current_item.addClass('open');
    });

    var sub_back = $('.sub-menu--back');
    sub_back.click(function(){
        var that = $(this);
        var menuIndex = that.parent().index();
        var currentItem = that.parent('.sub-menu');
        var parent_menu = that.parents('.menu');
        currentItem.removeClass('open');
        parent_menu.removeClass('sub-level1-open');
    });
});

你必须用

包装你的代码
    $(document).ready(function(){ 
        // Your Code
    }); 

确保在访问 DOM 之前已加载它。

关于javascript - 除非在页脚,否则 jQuery 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47526986/

相关文章:

javascript - CasperJS click() 不加载新的 html

javascript - 一段时间后,Node JS + Socket.io 应用程序停止接收事件

javascript - 如何使用axios客户端重试5xx错误

javascript - IE9 Object.defineProperty 不起作用

javascript - 删除一定宽度的背景图片

javascript - 表单中的多选选项

javascript - JQuery .on ('click' ) 在 DataTables 的第二页或超过 11 的行中不起作用

javascript - 为什么打字时光标不断跳到 TextFieldView 的末尾?

javascript - 通过 Ajax 发送文本框数组值

javascript - 如何在代码中查找 jQuery 或 Zepto 的所有用法