JavaScript单击功能element.click无效

时间:2015-08-25 12:55:16

标签: javascript

我有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

但是当我点击该项目时,我没有得到任何东西。

2 个答案:

答案 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>