我写了一个函数,在点击某个元素时,会用隐藏的 span 替换一个 div。当我在标签的“onclick=”attr 中设置事件处理程序时,该函数运行良好。但后来我试图变得“花哨”并用 jQuery 的 .click() 方法替换 onclick attr。现在,当我尝试在页面上使用它时,只有 clunk -- 没有任何反应。
但是,如果我在 Chrome 的 js 控制台中执行完全相同的代码,效果会很好。这是我的 js:
$("a#delete").click(function () {
$("a#delete").replaceWith($("span.hconf").attr("style", "none"))
});
这是相关的html(在div里面,在div外面):
<a class='modify' id="delete" u="{{ i.id }}" href='#'>delete</a>
<span class='hconf' style="display:none;">Are you sure? <a class='confirm' id='del_conf_true' onclick='deltrue();' href='#'>yes</a> | <a class='confirm' id='del_conf_false' href='#'>no</a></span>
我知道我可以使用“this”关键字更改第二个 $("a#delete"),但我现在将其撤消,因为我不确定这是否是问题的一部分。我是 js/jQuery 的新手。
最佳答案
Ready它:
$(document).ready(function() {
$("a#delete").click(function () {
$(this).replaceWith($("span.hconf").attr("style", "display:none"));
});
});
...你不是说 style="display:none"吗?您可以轻松地使用 .hide()
:
$("span.hconf").hide();
最后,在 ID 选择器上使用过滤标签毫无意义。只需执行 $("#delete")
,它既短又快。
关于javascript - jQuery .click() 方法未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946349/