Javascript jquery属性表示它未定义
我有一点代码,我正在努力工作,但我似乎是在循环的时刻 目的是停止立即单击事件,执行某些操作,然后继续 我已经从window.open切换到window.location,切换到window.replace,但还没有一个可以根据需要进行操作 对于下面的当前代码,变量href未定义 感谢您的帮助-我对javascript知之甚少Javascript jquery属性表示它未定义,javascript,jquery,Javascript,Jquery,我有一点代码,我正在努力工作,但我似乎是在循环的时刻 目的是停止立即单击事件,执行某些操作,然后继续 我已经从window.open切换到window.location,切换到window.replace,但还没有一个可以根据需要进行操作 对于下面的当前代码,变量href未定义 感谢您的帮助-我对javascript知之甚少 $("ul.tabs li").click(function (e) { var href = $(this).attr("href"); e.prev
$("ul.tabs li").click(function (e) {
var href = $(this).attr("href");
e.preventDefault();
setTimeout("location.replace(" + href + ");",2000);
});
因为
li
没有href
属性
$("ul.tabs li a").click(function (e) {
var href = $(this).attr("href");
e.preventDefault();
setTimeout(function() {document.location.replace(href);},2000);
});
或者您可以执行$(this).find('a').attr('href')
如果要将单击事件应用于li
元素请尝试以下操作:
$("ul.tabs li").click(function (e) {
// or use $("ul.tabs li a") and don't write .find('a') below
var href = $(this).find('a').attr("href");
e.preventDefault();
setTimeout(function()
{
location.replace(href);
},2000);
});
jsiddle现在不工作,所以这里有一些元素通常没有href
属性<代码>查看代码运行时这实际上是什么。可能不是你想象的那样。你的html是什么样子的?setTimeout(“location.replace(“+href+”),2000)代码>无法正常工作。哈哈,离代码太近了-请欣赏。/pattern/
怎么了?这不是location.replace
的工作原理:我更新了答案,我想,location是一个将被替换的字符串!:伙计们,现在开始工作了。这就是当你让一个c#guy负责一个UIT时会发生的情况,如果你这样做了,那就是更正:$(this.find('a').attr('href')
,在您的代码中,href
是未定义的
这如何解决href
是未定义的
的问题?仅当A元素没有设置href属性时,它可能是未定义的。实际上,我发布了一个带有console.log(href)的codePen链接,在建议的编辑之后,它可以正常工作。我指的是原始版本。