2015-12-21 37 views
1

我正在開發一個待辦事項列表。我想切換一個HTML列表元素的類,它代表了待辦事項。 list-element是在頁面加載後由用戶生成的。我現在使用的ToggleClass函數不起作用。我能夠在控制檯中捕捉到dblclick事件,但該類不會切換。用戶生成元素上的ToggleClass()不起作用

中的JavaScript/jQuery的是這樣的:

$(document).ready(function() { 
    $(document).on("dblclick", ["li"], setStatus); 
    console.log("Call setStatus"); 
}); 

而setStatus功能:

setStatus = function(){ 
    console.log("Double clicked on the li"); 
    $(this).toggleClass("done"); 
}; 

的HTML

<body> 
     <div id ="todoList"> 
      <ul></ul> 
     </div> 
     <input type ="text" id ="todoText"/> 
     <button id ="addTodoButton">Add!</button> 
    </body> 

的CSS類

.done{ 
    color: #006600; 
} 
+3

根據文檔[here](http://api.jquery.com/on/),'selector'是一個不是數組的字符串。刪除括號'[...]'... – War10ck

+1

在doc中,''[,selector]'意思是可選的:)使用'[「li」]',你傳遞它作爲事件數據,所以'this'裏面處理程序引用'document',然後你在文檔上切換類(這沒有意義) –

回答

4
$(document).ready(function() { 
    $(document).on("dblclick", "li", setStatus); 
    console.log("Call setStatus"); 
}); 

["li"]刪除[],它不是一個有效的選擇器,您的代碼激發了回調,因此在控制檯中顯示消息。