【问题标题】:jQuery code works in console but not in sitejQuery 代码在控制台中有效,但在站点中无效
【发布时间】:2017-06-20 11:05:20
【问题描述】:

我在 wordpress 网站中有以下 jQuery 代码。

jQuery(document).ready(function() {
   jQuery(".responsive-menu > .menu-item").click(function(event){
   if (event.target !== this)
   return;
   jQuery(this).find(".sub-menu:first").slideToggle(function() {
   jQuery(this).parent().toggleClass("show");
  });
 });
});

被切换的类将“.sub-menu”元素从“none”显示为“block”。

它在chrome dev工具的控制台中可以正常工作,但在页面中却不行,它是在创建DOM元素之后放置的。

如果我将代码更改为以下代码,则会执行警报,因此 jQuery 代码执行没有问题。

 jQuery(document).ready(function() {
  alert("working");
 });

关于为什么会这样的任何建议?

编辑:

解决办法是

jQuery(".menu-item").click(function(event){

而不是

jQuery(".responsive-menu > .menu-item").click(function(event){

感谢大家的帮助

【问题讨论】:

  • 控制台有错误吗?
  • console.log(jQuery(".responsive-menu > .menu-item").length) 返回什么?如果为零,则其他问题
  • 也分享html
  • 控制台没有错误,console.log(jQuery(".responsive-menu > .menu-item").length) 返回6
  • 在此处分享您的代码(html、js、css):jsfiddle.net 与您的问题。

标签: jquery wordpress


【解决方案1】:

试试这个。

(function($){
   $(document).ready(function() {
       $(".responsive-menu > .menu-item").on('click',function(event){
           if (event.target !== this)
               return;
           $(this).find(".sub-menu:first").slideToggle(function() {
               $(this).parent().toggleClass("show");
           });
        });
    });
})(jQuery)

【讨论】:

    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 2019-05-21
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多