我有javascript方法,它会在点击时从DOM元素中删除应用的类。代码就像
$(function() {
NS.toggleSortableClickHandler = function(element) {
console.log("elememnt inside toggleSortableClickHandler " + element)
element.click = function onClick(e) {
console.log("CALLED toggleSortableClickHandler")
}
}
var ele = document.getElementById('mytoggler');
console.log("document.getElementById('mytoggler') " + ele)
NS.toggleSortableClickHandler(document.getElementById('mytoggler'));
});
HTML代码是:
<ol class="sortable" >
<li id="mytoggler">List Item 11</li>
</ol>
所以我希望当我点击li项目控制台时应该打印
CALLED toggleSortableClickHandler
但是当我点击该项目时,我没有得到任何东西。
答案 0 :(得分:3)
如果您要通过DOM属性安装事件处理程序,则它是“onclick”,而不是“click”:
element.onclick = function onClick(e) {
console.log("CALLED toggleSortableClickHandler")
};
然而,无论如何,你显然都在使用jQuery,所以你不妨使用它:
$(element).on("click", function onClick(e) {
console.log("CALLED toggleSortableClickHandler")
});
答案 1 :(得分:0)
首先,你忘了括号,它应该是
.click()
之后你不能使用“=”运算符。 你想做的不是纯JavaScript,它是jQuery,语法不正确。
在JavaScript中,
element.click();
触发元素上的click事件。 在jQuery中,如果要为单击事件处理程序分配函数,则应使用语法
element.click(yourFunction());
我还建议更改处理程序函数的名称,因为onClick是HTML语言中用于指定click事件处理程序的属性。这可能会对代码的可读性造成一些混淆。
顺便说一句,onClick就是这样使用的,fyi。
<div onClick="myFunction()"></div>