我在jquery中编写了一段代码,隐藏一个按钮,同时在调用代码块的函数时单击该按钮。这是代码片段
var successBtn = $("#sucessBtn"); //declare the button
function successConfirm(){
// Hide the button
successBtn.hide();
successBtn.on("click", function() {
alert("in onclick");
successBtn.click();
});
}
我正在尝试调用 javascript block 中的函数,如图所示
onClose: function(){
successConfirm();
alert('window closed');
}
block 中的警报已执行,但动态单击对接时的警报永远不会执行。请问哪里出了问题
最佳答案
successConfirm
连接一个事件处理程序,它实际上并不单击按钮。它还通过触发点击来响应点击来设置无限循环,这......会很糟糕。
如果您希望它单击按钮,请让它执行此操作,而不是(或除此之外)连接事件处理程序:
function successConfirm(){
// Hide the button
successBtn.hide();
successBtn.on("click", function() {
alert("in onclick");
});
successBtn.click(); // <=== Moved this
}
请注意,上面每次都会添加一个新的点击处理程序。您可能想将这两件事分开,可能会将 on
调用放在外部 successConfirm
设置代码中的某个位置。
您在评论中说过:
I have moved it but button is not clicked
这表明,当您执行 var successBtn = $("#sucessBtn");
时,该按钮不存在。也许你这样做太早了。确实没有特别好的理由提前这样做,只需在 successConfirm
中进行即可:
function successConfirm(){
$("#successBtn")
.hide()
.on("click", function() {
alert("in onclick");
})
.click();
}
关于javascript - 尝试从 JavaScript 函数调用单击隐藏按钮的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43491019/