Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
在执行AJAX GET请求后动态呈现JavaScript代码时,如何使JavaScript正常工作?_Javascript_Jquery_Ruby On Rails_Ruby_Rendering - Fatal编程技术网

在执行AJAX GET请求后动态呈现JavaScript代码时,如何使JavaScript正常工作?

在执行AJAX GET请求后动态呈现JavaScript代码时,如何使JavaScript正常工作?,javascript,jquery,ruby-on-rails,ruby,rendering,Javascript,Jquery,Ruby On Rails,Ruby,Rendering,我正在使用RubyonRails3.0.9和jQuery1.6.2。在执行AJAX HTTP get请求后,当JavaScript的代码作为部分模板呈现时,我试图让JavaScript正常工作。也就是说,我有以下代码来执行HTTP GET请求: # The 'articles.html.erb' file var jqxhr = $jQ.get('http://www.my_web_site.com') .success(function(data) { $jQ('#data_contai

我正在使用RubyonRails3.0.9和jQuery1.6.2。在执行AJAX HTTP get请求后,当JavaScript的代码作为部分模板呈现时,我试图让JavaScript正常工作。也就是说,我有以下代码来执行HTTP GET请求:

# The 'articles.html.erb' file

var jqxhr = $jQ.get('http://www.my_web_site.com')
.success(function(data) {
  $jQ('#data_container').replaceWith(data);
})
这就是将执行的HTTP请求返回给
”的内容http://www.my_web_site.com“
URL(注意:这是一些JavaScript代码中的部分模板):

#“info_articles.html.erb”文件
'文章链接'%>
$jQ(“#文章链接”)。单击(函数(事件){
event.preventDefault();
...
});
replaceWith
函数正确地替换了网页中与
articles.html.erb
模板相关的
数据之后,刚才呈现的Javascript(即
info_articles.html.erb
中包含的Javascript)不起作用。在上面的示例中,我指的是
单击
事件处理程序:它根本无法按预期工作


为什么会发生这种情况?如何解决这个问题?

在主文档中使用jquery绑定。

我会这样做。但我会使用委托,它更快。你的控制台中有javascript错误吗?我认为上面的代码会起作用$jQ()是我假设的对jQuery的引用吗?$jQ()是一个非窗口对象吗?@Kyle Rogers不,我的控制台中没有javascript错误。是的,$jQ是我对jQuery的引用。
# The 'info_articles.html.erb' file

<%= link_to 'Article link', article_path(@article), :id => 'article_link' %>

<script type="text/javascript">
  $jQ('#article_link').click(function(event) {
    event.preventDefault();
    ...
  });
</script>