coffescript - 用params绑定函数

时间:2016-04-12 12:06:04

标签: javascript coffeescript

hookPreview: (tab, textarea) ->
  $(tab).bind "click", preview($(textaread).val()) ->
    false

当然它没有按预期行事:preview(...)不是一个功能。 documentation没有指出我可以将参数传递给preview的方法。

修改

bootstrap的标签控件也有问题:

<ul class="nav nav-tabs">
    <li role="presentation" class="active"><a href="#edit" data-toggle="tab" id="edit-tab">Edit</a></li>
    <li role="presentation"><a href="#preview" data-toggle="tab" id="preview-tab">Preview</a></li>
</ul>
<!-- panel for tabs -->
<div class="tab-content">
    <div class="tab-pane active" id="edit">
        <!-- textarea -->
    </div>
    <div class="tab-pane" id="preview">PREVIEW</div>
</div>

hookPreview存在标签无法切换,但新处理程序未绑定时很好。但是,在控制台中没有错误。

2 个答案:

答案 0 :(得分:1)

这里黑暗中的大刺......你想在preview事件中调用textaread函数click?然后:

hookPreview: (tab, textarea) ->
  $(tab).bind "click", preview.bind null, $(textaread).val()

这将在绑定事件处理程序时读取textaread 的值。它还会返回preview次返回,而不是false。要a)return false和/或b)在触发事件时读取textaread 的值,写一个简单的回调包装器:

hookPreview: (tab, textarea) ->
  $(tab).bind "click", ->
    preview $(textaread).val()
    return false

答案 1 :(得分:0)

$(textaread).val()部分放入preview函数的括号中会导致调用函数,而不是定义它,因此失败,因为函数尚未定义。 然而,在将值作为参数传递时,我没有任何意义 - 为什么不在事件处理程序触发时获取它:

hookPreview: (tab, textarea) ->
  $(tab).bind "click", preview() ->
    textValue = $(textaread).val()
    return false