我有一个页面movies.jsp,它是通过页面home.jsp中的ajax调用的。 movies.jsp包含IMDB评级插件(link)的代码:

<span class="imdbRatingPlugin" data-user="ur17960624" data-title="<%=request.getParameter("movieId") %>" data-style="p4">
    <a href="http://www.imdb.com/title/<%=request.getParameter("movieId") %>/?ref_=plg_rt_1">
        <img src="http://g-ecx.images-amazon.com/images/G/01/imdb/plugins/rating/images/imdb_31x14.png" alt="Oz the Great and Powerful (2013) on IMDb" />
    </a>
</span>
<script>(function(d,s,id){var js,stags=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}js=d.createElement(s);js.id=id;js.src="http://g-ec2.images-amazon.com/images/G/01/imdb/plugins/rating/js/rating.min.js";stags.parentNode.insertBefore(js,stags);})(document,'script','imdb-rating-api');</script>


我的ajax请求被这样调用:

$(document).on('click', 'imdb-button', function(){
    $('content').load('movies.jsp&movieId='+imdbmovieId');
});


问题是请求第一次可以正常运行,但是单击具有其他movieIds的其他电影只会返回IMDB徽标,而没有评级。我怀疑插件中的脚本有问题。我尝试将脚本包含在jquery函数中,并每次都将该函数作为对load的回调来触发,但这不起作用。有想法吗?

最佳答案

我也在修补插件,可以分享一些见解。如果要在初始页面加载之后插入IMDb等级,则每次添加元素时都需要调用rating.min.js。您也可以调用imdb.rating.createJSONP()函数,这可能是一个更好的解决方案,因为无需再次加载整个脚本。您应该知道该函数遍历它找到的所有imdb <span>标记。

在此version中,IMDb评级插件库实际上得到了很好的解释和注释。

关于javascript - IMDB评级插件不适用于Ajax,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15478129/

10-11 12:06