为什么jquery设计脚本不适用于ajax脚本返回的产品

我遇到了这个无法解决的问题。 部分是因为我无法用正确的术语来解释它。 我是新手,对这个笨拙的问题感到抱歉。

您可以在下面看到我的目标概述。

我正在使用Magento CE 1.7.0.2。

在这里你可以看到我的目标..

对于类别产品,我在JQuery中编写了一个自定义设计脚本,并且它的工作完美。

设计脚本

 $(document).ready(function(){ $("li.item").each(function(){ // my design script. }); });  

我有一个ajax脚本,我正在显示这个页面中的一些产品,最后这个也工作正常,但设计脚本不适用于产品从ajax脚本获得的所有产品。

ajax脚本

 $.ajax({ url: url1, cache: false , type : 'POST', // dataType: "json", data: data1, success: function(response){ if (response) { var string = $('.ajaxproducts', response); $('.displayproductsfromajax').html(string); } } }); 

我想为ajax脚本产品制作相同的设计脚本。

我做错了什么事吗?

有任何想法吗 ?

问题是,你只在dom ready函数上调用了设计脚本。 您需要在ajax成功后再次调用它才能应用样式或其他内容。

 function applyScript() { $("li.item").each(function(){ // my design script. }); } $.ajax({ url: url1, cache: false , type : 'POST', // dataType: "json", data: data1, success: function(response){ if (response) { var string = $('.ajaxproducts', response); $('.displayproductsfromajax').html(string); applyScript() } } }); 

你必须能够在单独的集合上调用你的设计算法,所以将它包装在这样的函数中

 var myDesign = function(i,el){ // this will be a reference to the current li.item in "each" }; $(document).ready(function(){ $("li.item").each(myDesign); }); 

 $.ajax({ url: url1, cache: false , type : 'POST', // dataType: "json", data: data1, success: function(response){ if (response) { var string = $('.ajaxproducts', response); $('.displayproductsfromajax').html(string).find('li.item').each(myDesign); } } });