我的jquery脚本有问题。
toggle:function()
{
if(this.opened){
$("slideToBuyBottomBtnClosed").setStyle("display","block");
$("slideToBuyBottomBtnOpen").setStyle("display","none");
$("sildeToBuyContent").setStyle("overflow","hidden");
this.openOrCloseEffect.start({height:0});
this.opened=false
}else{
$("slideToBuyBottomBtnClosed").setStyle("display","none");
$("slideToBuyBottomBtnOpen").setStyle("display","block");
setTimeout($("sildeToBuyContent").setStyle("overflow","visible"), 1000);
this.openOrCloseEffect.start({height:182});
this.opened=true
}
}
我正在与setTimeout
作战 - 我需要这一行:
$("sildeToBuyContent").setStyle("overflow","visible");
以1秒延迟开始,但我不知道setTimeout
是否正确。
答案 0 :(得分:9)
您需要将函数作为第一个参数传递给setTimeout
。变化
setTimeout($("sildeToBuyContent").setStyle("overflow","visible"), 1000);
到
setTimeout(function () { $("sildeToBuyContent").setStyle("overflow","visible") }, 1000);
这将在1秒后更改元素的overflow
。
答案 1 :(得分:2)
这里有一些问题。
$('slideToBuyBottomBtnClosed')
会尝试查找所有带有标签名称的元素,即<slideToBuyBottomBtnClosed>
元素。您可能希望在开始时使用哈希值来选择id,或者使用点来按类名选择,具体取决于您的代码。
有一些拼写错误(sildeToBuyContent)
出现超时的实际问题,问题出现在这一行:
setTimeout($("sildeToBuyContent").setStyle("overflow","visible"), 1000)
说到这里,它会在将括号内容传递给setTimeout
函数之前对其进行评估,就像输入function(3 + 2)
时一样。如果你想在一秒钟之后运行它,你可以传递一个像这样的实际函数:
setTimeout(function() {
$('#slideToBuyContent').setStyle("overflow", "visible");
}, 1000);
或作为要评估的字符串(虽然这在我看来更加混乱);
setTimeout("$('#slideToBuyContent').setStyle('overflow', 'visible')", 1000);
还有这种方法,可能在你的情况下不起作用,但它可以节省你创建另一个匿名函数:
setTimeout($('#slideToBuyContent').setStyle, 1000, 'overflow', 'visible');
答案 2 :(得分:0)
您可以使用Timers Plugin。
答案 3 :(得分:0)
setTimeout()的第一个参数是一个函数或一串代码,所以请尝试:
setTimeout('$("sildeToBuyContent").setStyle("overflow","visible")', 1000);
答案 4 :(得分:0)
感谢您的帮助。你帮助了我很多。
我不想打扰你,但是你们对这个动作有一个想法,为什么它不会工作:(
$("ul.sf-menu li").mouseover(function(){
$("#sildeToBuyContentWindow").css("overflow","visible");
});
我希望通过鼠标悬停所有&lt;李&GT;在&lt; ul class =“sf.menu”&gt; - 也是&lt;李&GT;在&lt;第二级&lt;第二级ul class =“sf.menu”&gt; ID #sildeToBuyContentWindow的元素溢出变为可见。
这是原来的代码,我曾用它来表达我的行动,但没有成功。
$(document).ready(
function(){
$( '#switches li' ).mouseover(
function(){
$( "#slides div" ).hide();
$( '#switches li' ).css( 'font-weight', 'normal' );
$( this ).css( 'font-weight', 'bold' );
$( '#slide' + $( this ).attr( 'id' ).replace( 'switch', '' ) ).show();
}
);
}
);