[英]SlideUp/SlideDown not quite working
我有一个功能来切换一个元素:
function toggle(elemName) {
text = document.getElementById(elemName);
var isHidden = text.style.display == 'none';
text.style.display = isHidden ? 'block' : 'none';
if (text.style.display == 'none') {
$(text).slideUp();
}
else {
$(text).slideDown();
}
return false;
}
我真正需要的是,如果它是隐藏的,则向下滑动,如果它可见,则将其向上滑动,使其消失。
它正在隐藏和显示,但滑动不起作用。
有什么事吗
谢谢
您在调用slideUp()
或slideDown()
之前隐藏了元素。
删除此行,它应该可以正常工作:
text.style.display = isHidden ? 'block' : 'none';
希望能帮助到你 :)
尝试这个:
function customToggle(elemId) {
var elem = $('#'+elemId);
if ( elem.is(':visible') ) { elem.slideUp(); }
else { elem.slideDown(); }
}
$(document).ready(function() {
customToggle('myId');
});
并注意在您的示例中$(text).slideUp();
将不起作用,因为文本将仅返回ID名称,例如: $('myId').slideUp();
在jQuery中应该是这样的: $('#myId').slideUp();
slideToggle是否可以满足您的需求?
function toggle(elemName) {
text = document.getElementById(elemName);
$(text).slideToggle();
}
参见工作演示http://jsfiddle.net/CAeSD/4/
您的逻辑倒退了,请使用!= 'none'
而非== 'none'
。
也删除您的行,说这句话:
var isHidden = text.style.display == 'none';
text.style.display = isHidden ? 'block' : 'none';
因此, 工作代码如下:
function toggle(elemName) {
text = document.getElementById(elemName);
if (text.style.display != 'none') {
$(text).slideUp();
}
else {
$(text).slideDown();
}
return false;
}
$("#name").on('click', function(){
toggle("txt");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.