我試圖用JavaScript和jQuery創建一個簡單的待辦事項列表,其中一個主要功能是能夠在兩個狀態之間切換任何列表項目等待或完成)通過點擊事件。未捕獲的類型錯誤:undefined不是函數 - Javascript
下面是頁面的標記:
<body>
<div id = 'page'>
<h2>To Do Items</h2>
<form id = 'itemForm'>
<input type='text' id='itemDesc' placeholder='Add Item' />
<input type='submit' id = 'addBtn' value ='ADD' />
</form>
<ul>
<li class ='pending'>First item</li>
<li>Second item</li>
<li>Third item</li>
</ul>
</div>
<script type="text/javascript" src='jquery-1.11.2.js'></script>
<script type="text/javascript" src='todoScriptjQuery.js'></script>
</body>
這裏是添加和切換功能的腳本: $(函數(){ /ADD列表項/ 變量$的newitem = $( '#itemDesc'); 變量$ itemForm = $( '#itemForm'); 變量$項目值;
$itemForm.on('submit', function (e){
e.preventDefault();
$itemValue = $('<li class = "pending">');
$itemValue.append($newItem.val());
$clear = $('<img class = "icon-invisible">');
$clear.attr('src', 'Images/png/clear.png');
$itemValue.append($clear);
$('ul').prepend($itemValue);
});
/*TOGGLE BETWEEN COMPLETE AND PENDING STATE*/
$('li').on('click', function(e){
var $target = e.target;
e.preventDefault();
switch($target.attr('class')) {
case 'pending':
doneItem($target);
break;
case 'completed':
revertItem($target);
break;
}
});
function doneItem($target) {
$target.attr('class', 'completed');
}
function revertItem($target) {
$target.attr('class', 'pending');
} });
I」的問題m的含義是,切換功能在控制檯中記錄一條錯誤消息: Uncaught TypeError: undefined is not a function
在switch語句開始的那一行。我已經添加了一個條件,只是爲了確認我的jQuery加載正確,而且確實如此。所以我有點失落,接下來要嘗試什麼。
任何指針都會有幫助。謝謝
謝謝。那就是訣竅。非常感激! – Harry
沒問題,很樂意幫忙。 –