如何在“X”秒后进行 jquery 函数调用
Posted
技术标签:
【中文标题】如何在“X”秒后进行 jquery 函数调用【英文标题】:How to make a jquery function call after "X" seconds 【发布时间】:2012-01-03 05:20:17 【问题描述】:我有一个 jquery 函数,我需要在 iframe 中打开网站后调用它。
我正在尝试在 iframe 中打开一个网络链接,打开它后我需要调用以下函数。 那我该怎么做呢?
这是我的功能:
<script type="text/javascript">
$(document).ready(function()
$("#<%=Button1.ClientID%>").click(function (event)
$('#<%=TextBox1.ClientID%>').change(function ()
$('#various3').attr('href', $(this).val());
);
$("#<%=Button2.ClientID%>").click();
);
)
function showStickySuccessToast()
$().toastmessage('showToast',
text: 'Finished Processing!',
sticky: false,
position: 'middle-center',
type: 'success',
closeText: '',
close: function ()
);
</script>
这是我在 IFrame 中打开链接的按钮:
<a id="various3" href="#"><asp:Button ID="Button1"
runat="server" Text="Button" OnClientClick="Button2_Click"/></a>
实际上这是我拥有的简单页面:
这就是信息
【问题讨论】:
你不能只使用 onclick 处理程序吗?我的意思是,如果 iframe 加载 onclick,你不能将函数也设置为运行 onclick 吗? 是的,我可以,但它只会同时闪烁它们。 看起来您正在使用 aspx ()。如果是这样,您也应该将问题标记为 aspx。 没问题,感谢您提供的信息,我已对其进行了纠正,现在可以正常使用了。 【参考方案1】:你可以在 JavaScript 中使用普通的 setTimeout 方法。
即...
setTimeout( function()
// Do something after 1 second
, 1000 );
在您的示例中,您可能希望直接使用showStickySuccessToast
。
【讨论】:
首先感谢您的回复,如果我这样做了,虽然我已将时间间隔设置为 9 秒,但它只会同时闪烁它们。 @Stein G. Strindhaug-Iframe 以及消息。 @user944919 那么你用来选择效果元素的任何css类都可能匹配这两个元素...... 如果你需要一个明确的超时时间,你应该定义 var 到 setTimeout 并把这个代码: clearTimeout(timer); 啊哈...这对我来说似乎很简单。【参考方案2】:如果您可以显示实际页面,我们可能会为您提供更好的帮助。
如果您只想在 iframe 加载后触发按钮,您可以 想检查它是否已加载或使用 iframe.onload:
<iframe .... onload='buttonWhatever(); '></iframe>
<script type="text/javascript">
function buttonWhatever()
$("#<%=Button1.ClientID%>").click(function (event)
$('#<%=TextBox1.ClientID%>').change(function ()
$('#various3').attr('href', $(this).val());
);
$("#<%=Button2.ClientID%>").click();
);
function showStickySuccessToast()
$().toastmessage('showToast',
text: 'Finished Processing!',
sticky: false,
position: 'middle-center',
type: 'success',
closeText: '',
close: function ()
);
</script>
【讨论】:
我已经更新了我的问题,您可以了解我的意思!而且我正在使用 fancybox Iframe 来显示网页。 我不太了解与框架交互,但我会冒险:如何将点击功能更改为 $('#iframeID').child('#button').click() ? 实际上我通过给按钮设置超时而不是函数作为 var timer = setTimeout(function () $("#").click( ); , 9000);并且工作正常。无论如何感谢您的宝贵回答,我会尝试您的建议。 你的回答也是最好的,但我没有使用普通的 Iframe,所以这也是一个不错的选择,将这些普通的 Iframe 与 Asp.Net 一起使用。 +1,因为你为我做了这么多尝试,给了我新的思考方式。【参考方案3】:试试这个
setTimeout( function()
// call after 5 second
, 5000 );
【讨论】:
请说明它与接受的答案有何不同,以及为什么这样可以解决问题,这将真正有助于提高您的帖子质量,并可能导致更多的赞成票。 另外,我们不要忘记这是一个将近 8 年的问题,已经回答了,并且有一个公认的答案。另外,这个答案真的很差,没有解释任何东西,或者贡献了任何新的东西(重复),---好吧,再读一遍第一句话。以上是关于如何在“X”秒后进行 jquery 函数调用的主要内容,如果未能解决你的问题,请参考以下文章