Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery无法识别选择器中发生了什么_Javascript_Jquery_Ruby On Rails_Ajax_Coffeescript - Fatal编程技术网

Javascript JQuery无法识别选择器中发生了什么

Javascript JQuery无法识别选择器中发生了什么,javascript,jquery,ruby-on-rails,ajax,coffeescript,Javascript,Jquery,Ruby On Rails,Ajax,Coffeescript,当.comment表单和.reply表单divs中发生某些事情时,应该会运行此命令。但是,代码仅在.comment表单中发生事件时运行 加载页面时,.comment表单div将显示,但只有在单击“回复”按钮时,.reply表单div才会显示。我认为这可能是问题所在,.reply表单不在页面加载中,因此当它实际出现时,JQuery无法识别它在那里。如何解决此问题?用于向尚未出现的元素添加事件 jQuery -> $(".comment-form, .reply-form") .o

.comment表单
.reply表单
divs中发生某些事情时,应该会运行此命令。但是,代码仅在
.comment表单
中发生事件时运行

加载页面时,
.comment表单
div将显示,但只有在单击“回复”按钮时,
.reply表单
div才会显示。我认为这可能是问题所在,
.reply表单
不在页面加载中,因此当它实际出现时,JQuery无法识别它在那里。如何解决此问题?

用于向尚未出现的元素添加事件

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')
用于向尚未出现的元素添加事件

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')
事件将是ajax:beforeSend和ajax:success 选择器应为.comment表单、.reply表单 数据将是(evt、xhr、设置)和(evt、数据、状态、xhr)

请让我知道如果你的代码被改写为上述格式是否有效

我没有注意到上面的帖子中有MinusFour的评论

事件将是ajax:beforeSend和ajax:success 选择器应为.comment表单、.reply表单 数据将是(evt、xhr、设置)和(evt、数据、状态、xhr)

请让我知道如果你的代码被改写为上述格式是否有效


我没有注意到MinusFour在上面的帖子中发表了评论。

下面是如何处理动态元素的侦听器(例如,在就绪事件之后)

//使用委托
$('delegationparent')。在('click','div',function()上{
$('#results').html('委托部门');
});
//插入新div(以前不存在)
$('delegationdiv')。附加到('delegationparent');
//没有代表
//创建Div
var div=$('No Delegate div');
//将处理程序附加到div
div.on('单击',函数()){
$('#results').html('无委托div');
});
//插入Div
副词appendTo(“#nodelegate”)

以下是如何处理动态元素的侦听器(例如,在就绪事件之后)

//使用委托
$('delegationparent')。在('click','div',function()上{
$('#results').html('委托部门');
});
//插入新div(以前不存在)
$('delegationdiv')。附加到('delegationparent');
//没有代表
//创建Div
var div=$('No Delegate div');
//将处理程序附加到div
div.on('单击',函数()){
$('#results').html('无委托div');
});
//插入Div
副词appendTo(“#nodelegate”)



如何将
回复表单
加载到页面中?每个评论都有一个名为“回复”的链接。单击“Reply”后,将使用带有div.Reply form的AJAX将表单加载到页面中。Reply form“只要在创建元素后附加侦听器即可。我假设您是通过DOM插入表单的。你所要做的就是抓取你创建的对象,然后添加处理程序。Nvm我得到了,谢谢!如何将
.reply form
加载到页面中?每个评论都有一个名为“reply”的链接。单击“Reply”后,将使用带有div.Reply form的AJAX将表单加载到页面中。Reply form“只要在创建元素后附加侦听器即可。我假设您是通过DOM插入表单的。你所要做的就是抓取你创建的对象,然后添加处理程序。Nvm我得到了,谢谢!在文档中,它说在jQuery 1.7+中,.on()自动使用delegationIt基本上是一样的
$(parentElement).on('ajax:success','.comment form,.reply form',handler)
不确定我认为是问题的东西现在是否真的是问题。因为由于.on()自动执行委托,可能是其他方面出了问题。我不知道这会怎样?如果元素不存在,jQuery对象应该返回一个包含0项的集合来附加处理程序,因此不会发生任何事情。请给出一个示例。只有链接的答案是不好的形式,因为链接可能会过时。在文档中,它在jQuery 1.7+中说,.on()自动使用delegations,但基本上是一样的
$(parentElement).on('ajax:success','.comment form,.reply form',handler)
不确定我认为是问题的东西现在是否真的是问题。因为由于.on()自动执行委托,可能是其他方面出了问题。我不知道这会怎样?如果元素不存在,jQuery对象应该返回一个包含0项的集合来附加处理程序,因此不会发生任何事情。请给出一个示例。只有链接的答案是不好的形式,因为链接可能会过时。谢谢!这加上四个字真的很有帮助。谢谢!这加上四个小错误真的很有帮助。
$(document).on( events , selector , data )