首页 > 解决方案 > jquery点击函数addclass

问题描述

我有一个奇怪的问题,我的“大部分”规则在点击函数中起作用,但一个不会

$(".fadeOut input").click(function() {
  $(".nooverlay").addClass("overlayon");
  $(".searchBar").addClass("fadeIn");
  $(".searchBar").removeClass("fadeOut")
});

addClass("overlayon") 不起作用?!?!?
fadeIn 工作
fadeOut 工作

整个js可以在这里看到:
https ://github.com/TerminalAddict/ta.com-website/blob/master/assets/js/ta.js

我正在使用 yui-compressor 进行压缩,然后创建一个大包(bundle.js)

控制台中没有错误,如果我将此功能粘贴到控制台中,它可以正常工作。

现场演示:https ://terminaladdict.com

标签: jqueryclick

解决方案


作为输入框,您的目标是有一个 ID,而您尝试添加类的 Div 元素也有一个 ID。ID 是唯一的,我认为您可以使用下面的代码。我也尝试在控制台窗口上执行并且似乎正在工作。

$("#query").click(function(e){
  event.preventDefault();

  if($('#query').parents('.fadeOut').length>0){
      $('#overlay').addClass('overlayon');
      $('.searchBar').addClass('fadeIn');
      $('.searchBar').removeClass('fadeOut');
  }
});

因为我们只有在 .fadeout 类的情况下才会出现黑色背景所以我在上面的 jquery 代码中添加了以下代码,以检查查询文本框的父级是否具有该类。它似乎工作正常。

 if($('#query').parents('.fadeOut').length>0){

推荐阅读