JS使用不同的方法设置点击属性
JS Setting onclick attribute using different methods
我正在尝试将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()函数。正如你在这个例子中看到的,只有.attr()函数正常工作。
有人可以告诉我其他两次尝试返回"null"或"未定义"时我做错了什么吗?
$(this).onclick = "ItWorks";
在 JQuery 对象上设置属性,而不是在 DOM 节点上设置属性。
$(this).prop("onclick", "ItWorks");
将属性设置为字符串,但它需要一个函数...并且该属性不会像其他某些属性那样直接映射到属性值。
$(this).attr("onclick", "ItWorks");
将属性设置为字符串,尽管在作为 JS 执行时不会执行任何操作。
如果要设置事件处理程序并使用 jQuery,请使用 on
方法,并且不要尝试通过检查属性值来测试它。
为什么不让它变得更容易:
<a href="javascript:void(0)" onclick='clickEvent("a")'>link</a>
<a href="javascript:void(0)" onclick='clickEvent("a")'>link</a>
function clickEvent(event) {
if (event == "a") {
output = "event a clicked";
} elseif (event == "b") {
output = "event b clicked";
}
alert(output);
}
相关文章:
- Javascript使用变量设置属性
- 如何在自动完成时设置属性标题
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 未捕获的类型错误:无法设置属性'背景'的未定义
- 无法设置属性'innerHTML'在javascript中为null
- Haxe Javascript:在不使用Reflect的情况下按名称获取和设置属性
- Jquery为每个元素设置属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 我们可以设置属性'id'到不同的'按钮'通过使用javascript或jquery的循环
- 如何在javascript对象中设置属性的类型,就像mongoose模式设计一样
- emscripten+sdl=引发异常:TypeError:无法设置属性'widthNative'的未定
- 未捕获的类型错误:无法设置属性'onclick'为null.已尝试window.onload
- Backbone JS Promises在模型上设置属性之前解析
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- 无法设置属性'round'的未定义
- 通过 Javascript 设置 C# 属性值
- 在 app.locals 上设置属性和调用 app.set() 有什么区别?
- 不引人注目地设置属性后函数失败
- j查询在设置属性后在后续单击时不读取数据属性
- IE错误:无法设置属性'的值;样式':对象为null或未定义