4
我是新來的JavaScript和啓動混合的JavaScript +的jQuery + CoffeeScript的一起是不容易的,像我這樣的新手...每個循環中的CoffeeScript,jQuery的
我創建了一個非常簡單的排序列表我想在飛行中將我的列表重新編號(服務器端代碼是確定的)。
的CoffeeScript的代碼,我寫的是:
jQuery ->
$('.simple_grid tbody').sortable
axis: 'y'
containment: 'parent'
cursor: 'move'
tolerance: 'pointer'
update: (event,ui)->
$.post($(this).attr('dataupdateurl') + '/' + ui.item.attr('id') + '/reorder/' + ui.item.index())
$('tr > td > a > span.number').each (i, element) =>
$(element).html i
這會產生這種
<table class= "simple-grid">
<tbody dataupdateurl = "xxx">
<tr>
<td>
<a href="some_link"><span class="number">1</span>text 1</a>
</td>
<td>
<a href="some_link"><span class="number">2</span>text 2</a>
</td>
<td>
<a href="some_link"><span class="number">3</span>text 3</a>
</td>
</tr>
</tbody>
</table>
我試圖重新編號有什麼span.number元素中的更新回調觸發時的表但我得到以下錯誤信息:
元素未定義
任何幫助將非常歡迎!謝謝!
更新:這個問題是由於這樣的事實,我錯過了最後一個函數的縮進:
$('span.number').each (i, element) =>
$(element).html i
你好,你對選擇器完整路徑是正確的。我改變了它。謝謝。關於剩餘的,我認爲這是咖啡的語法等同於你在javascript中說的。但肯定有什麼地方出錯...... – ndemoreau
如果你閱讀了代碼,在邏輯上會發生一篇文章,然後直接發佈一篇文章。有可能是由於事件的順序,帖子完成了,並且dom沒有完全創建。嘗試將.each函數移動到$(document).ready(function(){});或咖啡劇本相當。因此,您知道腳本將始終在帖子完成並且dom創建後執行。它仍然發生在渲染之前? – Kosmosniks
猜猜什麼?代碼是好的。這只是縮進問題......當我根據您的建議移動代碼時,我發現了這一點。非常感謝! – ndemoreau