gpt4 book ai didi

javascript - 阻止链接执行其 href 路径

转载 作者:行者123 更新时间:2023-12-02 18:56:04 24 4
gpt4 key购买 nike

您好,我正在尝试阻止链接执行其默认操作,但我似乎没有运气。这是我的代码:

 $("a.delete").on("click", function (e) {
var container = $("#lightbox-background");
var lightbox = $("#lightbox");

lightbox.init("Are you sure you want to delete this book?")
e.preventDefault();
});
var lightbox = {
init : function(actionString){
$("<div id='lightbox-background'></div>").appendTo("body");
$("<div id='lightbox'></div>").appendTo("body");
$("<p></p>").appendTo("#lightbox");
$("<a href='#' id='ok'>OK</a>").appendTo("#lightbox");
$("<a href='#' id='cancel'>Cancel</a>").appendTo("#lightbox");
}
}

我希望如果我使用 e.preventDefault 它会阻止链接转到它的 href 路径,但它不起作用。我做错了什么吗?

编辑:我刚刚注意到,如果我从点击事件处理程序中删除对灯箱对象的调用,e.preventDefault() 就会起作用。

最佳答案

您的问题在这一行:

var lightbox = $("#lightbox"); 

在onclick回调函数中隐藏变量名称与在单击回调外部定义的全局灯箱对象的名称相同。上面提到的局部变量只是覆盖该函数范围内的全局变量。基本上,您正在调用 $("#lightbox")init:

$("#lightbox").init("....")

不确定你在做什么,但尝试像这样更新你的代码:

$("a.delete").on("click", function (e) {
var container = $("#lightbox-background");
var lightboxElement = $("#lightbox");

lightbox.init("Are you sure you want to delete this book?")
e.preventDefault();
});

此外,调用

var container = $("#lightbox-background");
var lightboxElement = $("#lightbox");

第一次,您将得到一组空元素,因为此时 init 方法尚未执行,并且您要查找的元素尚未创建。

关于javascript - 阻止链接执行其 href 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com