我正在尝试为 anchor 设置 onclick 属性,如下所示:
$("a").click(function(e) {
$(this).onclick = "ItWorks";
output = "JS onclick attempt: my onclick is: <strong>" + $(this).onclick + "</strong>";
$(this).prop("onclick", "ItWorks");
output += "<br />jQuery prop() attempt: my onclick is: <strong>" + $(this).prop("onclick") + "</strong>";
$(this).attr("onclick", "ItWorks");
output += "<br />jQuery attr() attempt: my onclick is: <strong>" + $(this).attr("onclick") + "</strong>";
alert(output);
e.preventDefault();
});
我尝试过纯 JS、jQuery prop() 和 attr() 函数。正如您在 example 上看到的那样,只有 .attr() 函数才能正常工作。
有人可以告诉我我做错了什么,其他两次尝试返回“null”或“undefined”吗?
最佳答案
$(this).onclick = "ItWorks";
在 JQuery 对象上设置属性,而不是 DOM 节点。
$(this).prop("onclick", "ItWorks");
将属性设置为字符串,但它需要一个函数……并且该属性不会像其他一些属性那样直接映射到属性值。
$(this).attr("onclick", "ItWorks");
将属性设置为字符串,尽管作为 JS 执行时不会执行任何操作。
如果您想设置事件处理程序并使用 jQuery,则使用 the on
method ,并且不要尝试通过检查属性值来测试它。
关于javascript - JS使用不同方法设置onclick属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494347/