javascript - JS使用不同方法设置onclick属性

标签 javascript jquery html onclick

我正在尝试为 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/

相关文章:

html - 这两个 ul 标签有什么区别

javascript - 如何获取当前点击元素的ID

javascript - 如何在 side Array 中创建一个对象并将其推送到 object-javascript ?

html - Azure 媒体服务和 HTML5 视频

javascript - jquery mask 输入插件仅设置日期的日值

javascript - jQuery:我有一个类,我正在对每个类进行迭代。每回合的结果都不一样。如何使用 this 并访问值?

jquery - 为什么我不能让我的 jQuery 左滚动动画工作?

javascript - 分页 - 创建新文档

javascript - 使用 JavaScript 将一个 CSS 渐变动画化为另一个

javascript - 如何在 radio 输入上添加 eventListener