Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的(element.is(';:visible';)条件从未为真_Javascript_Jquery - Fatal编程技术网

Javascript 我的(element.is(';:visible';)条件从未为真

Javascript 我的(element.is(';:visible';)条件从未为真,javascript,jquery,Javascript,Jquery,对于FAQ部分,我的JS代码检查单击的问题的答案是否可见,如果是这样,则关闭它,否则打开它。但是由于某种原因,(这个答案是(':visible')条件永远不会为真,即使下面代码中的fadeIn()。为什么? JS: HTML: 问题#1 答案#1 问题#2 答复#2 ... 您正在立即淡出所有答案元素,因此在这之后它们就不可见了 但是,您可能试图在开始时隐藏所有答案,然后在单击相应的问题时显示它们。要做到这一点,您应该隐藏问题之外的所有答案,因为您使用的是JQuery,所以只需使用显示

对于FAQ部分,我的JS代码检查单击的问题的答案是否可见,如果是这样,则关闭它,否则打开它。但是由于某种原因,
(这个答案是(':visible')
条件永远不会为真,即使下面代码中的
fadeIn()。为什么?

JS:

HTML:

  • 问题#1 答案#1
  • 问题#2 答复#2
  • ...
您正在立即淡出所有答案元素,因此在这之后它们就不可见了

但是,您可能试图在开始时隐藏所有答案,然后在单击相应的问题时显示它们。要做到这一点,您应该隐藏问题之外的所有答案,因为您使用的是JQuery,所以只需使用显示/隐藏答案,而无需编写任何
if/then
code

另外,正如其他人在下面的评论中指出的那样
.fadeOut(0)
.hide()
具有相同的效果,更直接

//最初隐藏所有答案:
$('.faq_-answer').hide();
$('.faq_question')。单击(函数(){
//只需切换该答案的可见性即可
//与单击的问题对应。
$(this).sides('.faq_answer').toggle();
});

  • 问题#1 答案#1
  • 问题#2 答复#2

您正在立即淡出所有答案元素,因此在这之后它们就不可见了

但是,您可能试图在开始时隐藏所有答案,然后在单击相应的问题时显示它们。要做到这一点,您应该隐藏问题之外的所有答案,因为您使用的是JQuery,所以只需使用显示/隐藏答案,而无需编写任何
if/then
code

另外,正如其他人在下面的评论中指出的那样
.fadeOut(0)
.hide()
具有相同的效果,更直接

//最初隐藏所有答案:
$('.faq_-answer').hide();
$('.faq_question')。单击(函数(){
//只需切换该答案的可见性即可
//与单击的问题对应。
$(this).sides('.faq_answer').toggle();
});

  • 问题#1 答案#1
  • 问题#2 答复#2

如前所述,在检查项目是否隐藏之前,您正在隐藏该项目。您可以将其全部简化为:

// hide all the answers first
$('.faq_answer').hide();

// A single delegated event handler is more efficient
$(document).on('click', '.faq_question', function(){

   // Toggle the matching answer for the clicked question
   $(this).siblings('.faq_answer').toggle();
});

如前所述,在检查项目是否隐藏之前,您将隐藏该项目。您可以将其全部简化为:

// hide all the answers first
$('.faq_answer').hide();

// A single delegated event handler is more efficient
$(document).on('click', '.faq_question', function(){

   // Toggle the matching answer for the clicked question
   $(this).siblings('.faq_answer').toggle();
});

这永远不会是真的,因为您以前已经调用了
fadeOut()
两行。另外,
fadeOut(0)
是非常冗余的,只需使用
hide()
它永远不会是真的,因为您之前已经调用了
fadeOut()
两行。另外,
fadeOut(0)
是相当多余的,只需使用
hide()
fadeOut(0)
=
hide()
:)也可以使用
toggle(booleansexpression)
或仅仅toggle()@GoneCoding是的,但这实际上与问题无关。它与需要改进的地方相关:)我接受(两个)你的观点,但是
fade
的使用与问题或答案无关。是的,有一个更完整的答案是很好的,但我也有很多人抱怨答案试图回答太多与所问问题无关的问题,我也有人评论说应该在答案中改进代码的各个方面。归根结底,老年退休金问题是需要解决的首要问题。PS:我通常先发布一个直接的答案,然后再编辑答案以使其更全面。为了清楚起见,在我的评论之后,您将其更改为
切换
,以使用
切换
,但感谢您暗示我复制了您。做得好:)
fadeOut(0)
=
hide()
:)也可以使用
toggle(booleansexpression)
或仅仅toggle()@gonecode是的,但这实际上与问题无关。它与改进任何需要改进的内容相关:)我接受(两个)你的观点,但是
fade
的使用与问题或答案无关。是的,有一个更完整的答案是很好的,但我也有很多人抱怨答案试图回答太多与所问问题无关的问题,我也有人评论说应该在答案中改进代码的各个方面。归根结底,老年退休金问题是需要解决的首要问题。PS:我通常先发布一个直接的答案,然后再编辑答案以使其更全面。为了清楚起见,在我的评论之后,您将其更改为
切换
,以使用
切换
,但感谢您暗示我复制了您。干得好:)
// hide all the answers first
$('.faq_answer').hide();

// A single delegated event handler is more efficient
$(document).on('click', '.faq_question', function(){

   // Toggle the matching answer for the clicked question
   $(this).siblings('.faq_answer').toggle();
});