使用jQuery / Coffeescript在页面加载上触发函数

时间:2014-01-23 11:32:57

标签: jquery dom coffeescript

我有一个表单,根据用户的选择显示或隐藏元素。当表单验证失败时,我需要根据以前的选择在页面加载时显示或隐藏这些元素。

我的代码看起来有点像这样:

ready = ->
  $(".radio-button").on "ready change", ->
    value = $(this).val()
    if value != true
        $("#some-element").show();
    else
        $("#some-element").hide();

$(document).ready(ready)
$(document).on('page:load', ready)

更改处理程序工作正常,但就绪处理程序永远不会触发。我猜这与jquery绑定自己的处理程序之前的准备动作完成有关吗?

1 个答案:

答案 0 :(得分:2)

将“ready”事件附加到.radio按钮选择器的目的是什么?我不太确定这是否有效。无论如何,请尝试以下方法。

ready = ($) ->
    changeEvent = (e) ->
        value = $(this).val()
        if value is not true
            $("#some-element").show()
        else
            $("#some-element").hide()
    $(".radio-button")
        .on("change", changeEvent)
        .each -> $(this).change()

jQuery ready

这会将change事件绑定到选择器,然后立即为每个元素触发该事件。