【问题标题】:confirm not working after first click: confirm is not a function第一次点击后确认不起作用:确认不是功能
【发布时间】:2016-10-01 04:41:43
【问题描述】:

我有这个 jQuery 代码,当用户单击 div 中的任何链接时,它会弹出确认框。但是如果我首先点击一个链接,确认框会弹出,如果我点击取消操作被取消并且console.log显示confirm is not a function,如果我点击OK操作被执行并且console.log显示@987654323 @ 还有如果我再次点击链接,确认框不会再次弹出,直到我重新加载页面。

请问有人知道我做错了什么吗?

$("#aye a").click(function() {
  str = "Removing this Photo, It can not be reversed\nAre You sure You want to remove it?";
  confirm = confirm(str);
  if (confirm) {
    $("#div").html("deleted");
  }
});
<div id="aye">
  <a href="javascript:;">link 1</a>
  <a href="javascript:;">link 2</a>
  <a href="javascript:;">link 3</a>
  <a href="javascript:;">link 4</a>
</div>
<div id="div"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>

View on jsFiddle

【问题讨论】:

    标签: javascript jquery confirm


    【解决方案1】:

    您正在使用名为 confirm 的全局变量来跟踪 window.confirm

    这是一种解决方案,我将您的局部变量称为confirm2

    $("#aye a").click(function(){
        var str = "Removing this Photo, It can not be reversed\nAre You sure You want to remove it?";
        var confirm2 = confirm(str);
        if(confirm2){
            $("#div").html("deleted");
        }
    });
    

    请注意,我还添加了 var 关键字以防止这些变量泄漏到全局空间中。

    【讨论】:

      【解决方案2】:

      $("#aye a").click(function(){
          if(confirm( "Removing this Photo, It can not be reversed\nAre You sure You want to remove it?"))
          {
              // Add class to deleted item and remove click event so user cannot click again
              $(this).addClass("deleted").off("click");
      		$("#div").html("deleted");
      	}
      });
      a.deleted{
        color  : silver;
        cursor : not-allowed
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <div id="aye">
         <a href="javascript:;">link 1</a>
         <a href="javascript:;">link 2</a>
         <a href="javascript:;">link 3</a>
         <a href="javascript:;">link 4</a>
      </div>
      <div id="div"></div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-16
        相关资源
        最近更新 更多