我有这个jQuery代码,当用户点击div中的任何链接时弹出确认框。但我的问题是,如果我首先单击链接确认框,它会弹出,如果我单击取消,操作被取消,console.log显示confirm is not a function
,如果我单击确定,则执行操作, console.log说confirm is not a function
然后如果我再次点击一个链接,确认框不会再次弹出,直到我重新加载页面。这是我的jsfiddle
请有人知道我的错误吗?
答案 0 :(得分:2)
您正在使用名为window.confirm
的全局变量隐藏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
关键字,以防止这些变量泄漏到全局空间。
答案 1 :(得分:0)
$("#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>