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

时间:2014-04-09 11:41:36

标签: php jquery ajax magento

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

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

我正在使用Magento CE 1.7.0.2。

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

对于类别产品我在JQuery&中编写了一个自定义设计脚本它工作得很好。

设计脚本

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

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

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脚本产品制作相同的设计脚本。

我在这里做错了什么?

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

问题是,你只在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()
    }
  }
});

答案 1 :(得分:0)

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

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);
        }
      }
});