javascript - 尝试从 JavaScript 函数调用单击隐藏按钮的函数

标签 javascript jquery html

我在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/

相关文章:

jQuery 发布并成功重定向

javascript - 保存ajax调用的id以在返回函数中使用它

javascript - 在 javascript 中发布一个包含 html 标签的字符串

javascript - 如何使用 Highcharts 绘制两个传感器数据值的图表?

javascript - 如何在重新加载页面时保持选中复选框并显示内容?

javascript - 我如何使用 jquery 动态添加或删除附加到元素的类?

javascript - 无法在 react 原生 Jest 中记录 enzyme 浅包装器的值

javascript - Angularjs - 如何显示特定的 div onclick 一个特定的链接并隐藏以前的 div with ng repeat- like tabs

javascript - CSS布局问题、流程图设计

javascript - 从数组和包含另一个数组的属性创建一个新数组