我可能会失明,或者没有参数,选项或任何禁用动画的选项:
.toggle()
我只是想通过toggle()来显示()和隐藏()但是我使用slideToggle,fadeToggle甚至普通切换的每个切换都带有动画。
如何“删除”它们?
答案 0 :(得分:14)
只需确保toggle()的参数解析为true,而不是1。
toggle(1); // animation
toggle(true); // no animation.
答案 1 :(得分:6)
toggle()是立即的。
slideToggle()和fadeToggle()使用动画的默认值,使它们立即生效,传递值'0';
这些都是相同的,只是显示和隐藏元素:
$('button').on('click', function() {
ToggleElement.toggle();
});
$('button').on('click', function() {
ToggleElement.slideToggle(0);
});
$('button').on('click', function() {
ToggleElement.fadeToggle(0);
});
但是没有理由在没有动画的情况下使用底部两个,因为那种方式会失败。
快一点就是在if / else语句中使用javascripts native element.style.display = 'none'/'block'
。
答案 2 :(得分:3)
您可以随时提供自己的切换功能:
$.fn.quicktoggle = function() {
this.each(function() {
var $this = $(this);
if ($this.is(':visible')) {
$this.hide();
} else {
$this.show();
}
});
return this;
};
答案 3 :(得分:2)
只使用没有参数的切换,它应该是立即的。
来自文档:
没有参数,.toggle()方法只是切换可见性 元素:
$('.target').toggle();
答案 4 :(得分:2)
只需关闭效果
jQuery.fx.off = true;
答案 5 :(得分:0)
如果您想轻松替换代码中的所有实例,那么稍微更“强加”的方法是覆盖这些函数。
$.fn.slideToggle = function(duration, callback ) {
duration = 0;
callback = callback || function(){};
this.toggle(duration, callback);
};
$.fn.fadeToggle = function(duration, callback) {
duration = 0;
callback = callback || function(){};
this.toggle(duration, callback);
};
答案 6 :(得分:0)
$('.clk').click(function(){
if(document.getElementById("ID").className == "p-cap hide")
{
document.getElementById("ID").className = "p-cap show";
}
else
{
document.getElementById("ID").className = "p-cap hide";
}
});
.p-cap { height:100px; width:100px; background :red; float:left; }
.clk { height:100px; width:100px; background :green; float:left; }
.hide { display: none; }
.show { display: block; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="clk"></div>
<div id="ID" class="p-cap hide"></div>