我的应用程序中有一个嵌套表单,它使用AJAX加载其他字段集。其中一个字段是我要隐藏的文件上传,并有效地替换为文本字段以粘贴Youtube链接。它适用于第一组字段,但由于函数绑定在document.ready上,因此它不适用于新的AJAX字段。我需要以其他方式绑定它。怎么办?
$ ->
$(".foo").click ->
$(this).css "display", "none"
更新:我没有运气,所以我去阅读了jQuery .on() documentation,它让我想起了Fresheyeball关于将它绑定到父div的内容。在那之后,它完美地运作。谢谢你的好建议!
$ ->
$("#create").on "click", ".foo", ->
$(this).css display : "none"
答案 0 :(得分: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'
事件绑定到它。
P.S。在coffeescript中,文档准备的简写只是$ ->