jQuery FadeOut()不';不行。单击,而不是跳转
有人能解释一下这个片段吗 我正在尝试将jQuery砌体插件与过滤集成在一起。出于某种原因,函数的FadeIn部分可以在所有级别上工作,但fadeOut()不能 代码如下:jQuery FadeOut()不';不行。单击,而不是跳转,jquery,fadeout,Jquery,Fadeout,有人能解释一下这个片段吗 我正在尝试将jQuery砌体插件与过滤集成在一起。出于某种原因,函数的FadeIn部分可以在所有级别上工作,但fadeOut()不能 代码如下: $j('#filter a').click(function(){ var colorClass = '.' + $j(this).attr('class'); //if($j('.portfolio').hasClass(colorClass
$j('#filter a').click(function(){
var colorClass = '.' + $j(this).attr('class');
//if($j('.portfolio').hasClass(colorClass){
if(colorClass=='.box') {
// show all hidden boxes
$j('.portfolio').children('.invis')
.toggleClass('invis').fadeIn('slow');
} else {
// hide visible boxes
$j('.portfolio').children().not(colorClass).not('.invis')
.toggleClass('invis').fadeOut('slow','linear');
// show hidden boxes
$j('.portfolio').children(colorClass+'.invis')
.toggleClass('invis').fadeIn('slow', 'linear');
}
}
我仍在提高我的js和jquery技能,但如果您能帮助我测试输出或修复此问题,我将不胜感激
下面是用于过滤的HTML
<div id="filter">
<ul>
<?php
$taxonomy = 'portfolio-box-sets';
$terms = get_terms($taxonomy, 'hierarchical=0');
echo '<li><a class=".fbox">All</a></li>';
if ($terms) {
foreach($terms as $term) {
echo '<li><a class="'.$term->name.'">' . $term->name . '</a></li>';
}
}
?>
</ul></div>
我还尝试为包装器元素指定一个宽度,但没有帮助。我根据您提供的代码编写了一个快速的fadeIn fadeOut切换示例。对于您发布的html/javascript,我不能100%确定最终目标是什么,但是,希望这将使您的切换朝着正确的方向发展:
当单击功能保留在else语句中时,它似乎可以工作,但任何时候显示所有框时,它都会隐藏未关闭的框,它不工作。希望有帮助。我想你应该发布一些html代码。你为什么需要一门“Invi”课程?你不能检查隐藏状态吗?我已经添加了链接到点击功能的HTML。希望能有所帮助。不确定php/html代码与js代码有什么关系,不知道有没有
.portfolio
或.box
。除此之外,“.fbox”不是有效的css类名,在js代码中,您应该使用“addClass()”和“removeClass()”而不是“toggleClass()”,因为您已经知道该类是否存在。出于某种原因,当我使用Chrome Developer Bar时,淡出更为明显,我只是不知道为什么它只会在某些情况下延迟。感谢您的尝试,但这只是隐藏了它们,按钮无法将它们恢复。我发布的JSFIDLE中的示例在这种情况下有效,但是,它可能需要一些修改才能适用于您的情况。它不是直接复制/粘贴解决方案。我建议,在问题中粘贴代码的当前状态后,在适当的情况下,将toggleClass更改为addClass或removeClass。