旋转我的车轮试图解决这个问题。我有一个链接,点击时从服务器检索表单。表单有3个按钮和1个文本输入。我试图让非提交按钮响应JS,从服务器返回表单后他们不会这样做。
我在lists.js中创建了一个函数,其中ajax:success试图调用,但我没有做正确的事情。我在lists.js中测试了这个函数,我知道它有效,我只是没有正确调用它。
以下是相关文件。如何激活showPicturePicker函数以便在插入AJAX响应后使用它?
Lists.js
$("#new_list")
.bind "ajax:success", (evt, xhr, settings) ->
$("#list-item").html(xhr)
showPicturePicker
showPicturePicker = () ->
$('#picture').click (e) ->
e.preventDefault()
alert "yeah, you figured it out"
$(document).ready showPicturePicker
_new.html.haml(从服务器返回的表单)
= form_for [@list, @item], :remote => true, :html => {:class => 'form-inline'} do |f|
.input-append
= f.text_field "name", :class => 'input-large', :placeholder => "Add item to this list"
%button#picture.btn
%span.icon-camera
%button#link.btn{:style => "font-size: 10px;"}
http://
.secondary-fields{:style => "display: none"}
.field.margin
= f.text_field "link", :placeholder => "http://www.link.com", :style => "width: 325px"
.field.margin
= f.file_field "picture"
= f.hidden_field "picture_cache"
.clearfix
= link_to "blah", "#{}", :class => "fuck-me"
= f.submit "Add Item", :class => 'btn', :id => "add-item"
这是我需要在其他地方解决的问题,我很感激帮助。
答案 0 :(得分:0)
application.js包含一个IIFE(立即调用的函数表达式),并且在那里定义的变量在其他文件中不可见,除非您明确地将它们提供给全局范围(通过将它们附加到窗口或其他对象)
在application.js中,尝试:
@showPicturePicker = ->
...
# or window.showPicturePicker = ->
“虽然为了清楚起见在本文档中被禁止,但所有CoffeeScript输出都包含在一个匿名函数中:(function(){...})();这个安全包装器与自动生成var关键字相结合,make非常难以意外地污染全局命名空间。“