Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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处理在页面上加载json的html?_Javascript_Jquery_Html_Ruby On Rails_Json - Fatal编程技术网

如何让javascript处理在页面上加载json的html?

如何让javascript处理在页面上加载json的html?,javascript,jquery,html,ruby-on-rails,json,Javascript,Jquery,Html,Ruby On Rails,Json,在一个特定的页面上,我使用json加载一些html代码,这些代码显示了有关用户单击某个内容时提交的内容的信息 在本例中,用户选择他最喜欢的棒球运动员,json返回一些html代码,用于格式化和显示球员的姓名 当该html加载到页面上时,live click javascript函数不再应用于加载的html。有什么方法可以刷新javascript以使其适用于它吗?您使用的是jQuery吗?他们有一个内置的方法来处理这个问题 $('#myElement').live('click', functio

在一个特定的页面上,我使用json加载一些html代码,这些代码显示了有关用户单击某个内容时提交的内容的信息

在本例中,用户选择他最喜欢的棒球运动员,json返回一些html代码,用于格式化和显示球员的姓名


当该html加载到页面上时,live click javascript函数不再应用于加载的html。有什么方法可以刷新javascript以使其适用于它吗?

您使用的是jQuery吗?他们有一个内置的方法来处理这个问题

$('#myElement').live('click', function() {
    /* Your Code Goes Here */
});
在jQuery 1.7中,同样的内容可以写成:

$('#myElement').on('click', function() {
    /* Your Code Goes Here */
});

当用户单击他最喜欢的棒球运动员时,您向服务器发出请求,服务器返回一个包含球员信息的json对象,对吗?如果服务器返回一个包含html标记的字符串,而不是json对象,我认为这不是正确的方法

服务器应该响应的JSON对象应该如下所示

{Name : 'Kobe Bryant', JerseyNumber : 0, Salary : 500}
一旦您收到这个对象,您将解析它并将其内容放入页面上的一个元素中。使用HTML代码进行响应不是一个好的做法,您应该创建一个模板来存储运动员的数据


如果您在回答这个问题时给我们一些代码,我将非常乐意帮助您解决这个问题

在做了大量研究并与几个人交谈后,我发现需要在json回调后重新绑定事件

这是一个很大的帮助:

当使用jQuery的.click()方法并呈现新的html时,需要再次附加最初附加到它的javascript


使用带有“click”选项的.live()方法可以更容易地解决这个问题。.live()方法自动重新绑定新代码。

是的,我使用的是jQuery,我有这个函数。当json请求返回我显示的html时,单击对返回的html不再有效。我返回的html元素与我单击的原始html元素具有相同的类。它返回一个json对象,其中一个变量是html字符串。所以它看起来像msg.html==“Name”,我很感激这个建议,但是我们需要在服务器端创建html来提高性能。这样,javascript就不必在页面加载时解析数据和创建html。