【发布时间】:2016-08-10 11:08:06
【问题描述】:
我想“链接”两个 .click() 调用,但无法使其工作。 当我在浏览器中调试 JS 代码时,该代码确实有效(因此延迟似乎有效)
不知何故,我需要第一个 .click() 来加载页面(这是第一个事件所做的),并且只有在完成后,我才希望执行第二个 .click()。
我的代码:
$.post("settings?type=mail&nr=" + nr, function(data){
if(data != ""){
alert(unescape(data));
// First click event -> realoads the page
$("#change_settings").click();
// Second click event -> navigates to a tab
// inside the page loaded by the first click event
$("#tab_mail_header" + nr + "").click();
}
});
编辑:更多代码
function load_change_settings_view(e){
e.preventDefault();
$("#content").empty();
// load settings.jsp in a div (test) inside the mainpage
$("#content").load("settings.jsp #test", function(){
// In here are a couple of .click() & .submit() functions but nothing else
});
});
$("#change_settings").click(function(e){
load_change_settings_view(e);
});
编辑:我目前有这个代码:
$("#change_settings").click();
window.setTimeout(function () {
$("#tab_mail_header" + nr + "").click();
}, 1000);
虽然我不太喜欢它,因为它是一个定时延迟,而且(在慢速客户端上)1 秒超时可能是不够的。我不想将超时设置得太高,因为这会减慢客户端速度更快的用户的工作流程...
我看了几篇这样的帖子:
How to wait till click inside function?
Wait for click event to complete
有人知道如何让它工作吗?
【问题讨论】:
-
如何“加载页面”?你的意思是通过ajax加载内容吗?然后你必须在你的ajax调用的成功回调函数中触发你的第二个事件。
-
调用页面重新加载后,不会执行任何操作。重构你的代码来解决这个问题。
-
您必须将 _GET 变量或其他内容传递到新页面,然后您可以使用该参数单击所需的选项卡。
标签: javascript jquery onclick