为什么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); } } });