Javascript jQuery.click()方法的行为不符合预期
我编写了一个函数,在单击某个元素时,它将用一个隐藏的跨度替换一个div。当我在标记的“onclick=”attr中使用事件处理程序时,函数运行良好。但后来我尝试使用jQuery的.click()方法替换onclick attr。现在,当我试着在页面上使用它时,除了一声沉闷之外,什么都没有发生 然而,如果我在Chrome的js控制台中执行完全相同的代码,效果会非常好。这是我的js:Javascript jQuery.click()方法的行为不符合预期,javascript,jquery,Javascript,Jquery,我编写了一个函数,在单击某个元素时,它将用一个隐藏的跨度替换一个div。当我在标记的“onclick=”attr中使用事件处理程序时,函数运行良好。但后来我尝试使用jQuery的.click()方法替换onclick attr。现在,当我试着在页面上使用它时,除了一声沉闷之外,什么都没有发生 然而,如果我在Chrome的js控制台中执行完全相同的代码,效果会非常好。这是我的js: $("a#delete").click(function () { $("a#delete").replac
$("a#delete").click(function () {
$("a#delete").replaceWith($("span.hconf").attr("style", "none"))
});
以下是相关的html(在div内,在div外):
你确定吗
我知道我可以用“this”关键字更改第二个$(“a#delete”),但我现在不做了,因为我不确定这是否是问题的一部分。我是js/jQuery的新手。it:
…您是指style=“display:none”吗?您可以轻松地使用:
最后,在ID选择器上使用过滤标记是没有意义的。只需执行
$(“#delete”)
,它既短又快。在DOM就绪之前运行此JS,请尝试将此代码放入$(function(){})
(DOM就绪)块中
或者,您可以尝试使用.live
$("a#delete").live('click', function () {
$("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
});
注意:使用
.hide()
和.show()
更改显示属性。在浏览器看到“删除”锚HTML之前,您的代码正在运行。因此,jQuery选择器“a#delete”什么也找不到,因此总体上什么也没有发生。通过将初始化代码放入“就绪”处理程序:
将其执行延迟到整个文档已被解析的时间点。或者,您可以将脚本块放在
是“删除”标识符还是CSS类的末尾?“删除”是标识符。我也不熟悉HTML和CSS,所以我肯定我在这方面做得不对。我只关心js logic atm。谢谢你更新了:.hide()和我的过滤器代码冗余。
$(document).ready(function() {
$("a#delete").click(function () {
$(this).replaceWith($("span.hconf").attr("style", "display:none"));
});
});
$("span.hconf").hide();
$(function(){
$("a#delete").click(function () {
$("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
});
});
$("a#delete").live('click', function () {
$("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
});
$(function() {
$('a#delete').click(function() { /* ... */ });
});