2012-09-16 64 views
0

破解演示:http://jsfiddle.net/sTzCS/52/jQuery:爲什麼不是此警報解僱?

如果您轉到提琴,您應該能夠將列表中的團隊拖放到新訂單中。您也可以輸入一個值,表示您認爲每個球隊在本賽季將獲得的積分數量。 jQuery在完成重新排列後讀取排序順序,並且還嘗試獲取每個團隊的輸入值。

小提琴中的提示(我爲測試目的而創建的)應該顯示出您放在第一位的團隊以及您希望他們獲得的積分數量。但是,警報不會觸發。 jLint說代碼是有效的。我正在使用警報來確保我確實獲得了正確的值。你能解釋爲什麼警報不起作用嗎?

<form<form id="new_entry"> 

<ul id="sortlist"> 

     <li id="Vancouver">Canucks<input type="text" name="name" id="vanpoints"></li> 
     <li id="Toronto">Toronto<input type="text" name="name" id="torontopoints"></li> 
     <li id="Montreal">Montreal<input type="text" name="name" id="montrealpoints"></li> 
     <li id="Ottawa">Ottawa<input type="text" name="name" id="ottawapoints"></li> 
     <li id="Calgary">Calgary<input type="text" name="name" id="calgarypoints"></li> 
     <li id="Edmonton">Edmonton<input type="text" name="name" id="edmontonpoints"></li> 
     <li id="Winnipeg">Winnipeg<input type="text" name="name" id="winnipegpoints"></li> 
</ul> 
<input type="submit" value="Add"> 
</form> 

jQuery的

$("#sortlist").sortable({ 
    stop: function(event, ui) { 
     result = $("#sortlist").sortable("toArray"); 
     var attributes; 
     attributes = { 
      first: { team: result[0].id, value: result[0].children()[0].val() }, 
     second : { team: result[1].id, value: result[1].children()[0].val() }, 
     third: { team: result[2].id, value: result[2].children()[0].val() }, 
     fourth: { team: result[3].id, value: result[3].children()[0].val() }, 
     fifth: { team: result[4].id, value: result[4].children()[0].val() }, 
     sixth: { team: result[5].id, value: result[5].children()[0].val() }, 
     seventh: { team: result[6].id, value: result[6].children()[0].val() } 
     }; 

     alert(attributes.first.team + attributes.first.value); 
    } 
}); 
+1

在瀏覽器中檢查開發者控制檯中的錯誤 –

+0

在警告語句前必須有語法錯誤或空值錯誤 – madhairsilence

+0

@Ohgodwhy爲什麼會這樣?我清楚地看到'價值'是定義的。 –

回答

1

$("#sortlist").sortable("toArray")返回排序項的ID,這是一個字符串數組的數組。

一個字符串沒有id屬性和children方法。

+0

小提琴會拋出錯誤'TypeError:result [0] .children不是函數 first:{team:result [0] .id,value:result [0] .children()[0] .val()}, '這讓我覺得有一個metod「id」但沒有「children」 –

+0

謝謝你的回答。我從這個問題的答案得到了代碼/想法http://stackoverflow.com/questions/12443908/jquery-how-do-i-access-this-input-value如果你有時間,我會如果你可以解釋將輸入值與列表項的ID一起得到的適當方式,那麼會很感激。 – BrainLikeADullPencil