【发布时间】:2015-11-16 02:23:48
【问题描述】:
jQuery ->
$(".comment-form, .reply-form")
.on "ajax:beforeSend", (evt, xhr, settings) ->
debugger;
$(this).find('textarea')
.addClass('uneditable-input')
.attr('disabled', 'disabled');
.on "ajax:success", (evt, data, status, xhr) ->
debugger;
$(this).find('textarea')
.removeClass('uneditable-input')
.removeAttr('disabled', 'disabled')
.val('');
debugger;
$(data.comments).hide().insertAfter($(this)).show('fast')
这应该在.comment-form 和.reply-form div 中发生某些事情时运行。但是,代码仅在.comment-form 中发生某些事情时运行。
页面加载时会出现.comment-form div,但.reply-form div 仅在点击“回复”按钮时才会出现。我认为这可能是问题所在 - .reply-form 在页面加载时不存在,因此当它确实出现时,JQuery 无法识别它的存在。我该如何解决这个问题?
【问题讨论】:
-
.reply-form是如何加载到页面中的? -
每条评论都有一个名为“回复”的链接。单击“回复”时,使用带有 div“.reply-form”的 AJAX 将表单加载到页面中
-
只要在元素创建后附加监听器。
-
好吧,我假设您正在通过 DOM 插入表单。您所要做的就是获取您创建的对象并添加处理程序。
-
Nvm 我明白了,谢谢!
标签: javascript jquery ruby-on-rails ajax coffeescript