我将 CoffeeScript 用于 Rails 上的应用程序,现在在更改复选框后,我调用 jquery 函数以使用 ajax 更新其在数据库中的值,但如果选中了复选框,我还想插入一行。
HTML:
<ul>
<li class="side-bar-element">
<input class="task" id="1" name="1" type="checkbox" value="Element 1"/>
Element 1
</li>
<li class="side-bar-element">
<input class="task" id="2" name="2" type="checkbox" value="Element 2"/>
Element 2
</li>
<li class="side-bar-element">
<input class="task" id="3" name="3" type="checkbox" value="Element 3"/>
Element 3
</li>
<li class="side-bar-element">
<input class="task" id="4" name="4" type="checkbox" value="Element 4"/>
Element 4
</li>
</ul>
咖啡脚本:
$(".task").live "change", ->
id = $(this).attr("id")
isChecked = $(this).attr("checked")
$.ajax
url: "/update"
type: "post"
data: { id }
success: ->
alert "Updated Succesfully."
if(isChecked)
alert "For Testing: Is Checked."
$(this).closest('li').css "text-decoration", "line-through"
error: ->
alert "Changes were not saved."
我不明白为什么警报“已检查”工作正常,但它从不更新 CSS。我也尝试使用 parent(), prev() 但没有运气。任何帮助将非常感激。谢谢。