0

我的应用程序中有一个嵌套表单,它使用 AJAX 加载额外的字段集。其中一个字段是文件上传,我想隐藏它并有效地替换为用于粘贴 Youtube 链接的文本字段。它适用于第一组字段,但是由于该函数绑定在 document.ready 上,因此它不适用于新的 AJAX 字段。我需要以其他方式绑定它。做什么?

$ ->
  $(".foo").click ->
    $(this).css "display", "none"

更新:我运气不好,所以我去阅读jQuery .on() 文档,它让我想起了 Fresheyeball 所说的将它绑定到父 div 上。在那之后,它完美地工作了。感谢您的宝贵意见!

$ ->
  $("#create").on "click", ".foo", ->
    $(this).css display : "none"
4

1 回答 1

3

新的 jQuery .on 应该适合你:

$(document).ready ->
   $(window).on 'click', '.multiswitchr', ->
      that = $(this)
      that.css display : 'none'
      that.closest(".fields").find(".f-upload").first().css          display : "none"
      that.closest(".fields").find(".attachment-holder").first().css display : "none"
      that.closest(".fields").find(".youtube-link").first().css      display : "inline"

这项工作的方式是将侦听器绑定到window(或者您可以使用直接父级)以侦听事件的存在.multiswitchr并将'click'事件绑定到它。

PS在coffeescript中文档准备好的简写就是$ ->

于 2012-04-05T22:50:39.797 回答