点击链接

时间:2017-01-20 20:37:21

标签: javascript jquery ajax prestashop prestashop-1.6

Prestashop v1.6 default-bootstrap主题,product-list.tpl文件。

我有一个按钮添加到购物车和div与一些聪明的代码:

<a class="ajax_add_to_cart_button" href="....">

<div id="div1">{if $added}Added{else}not added{/if}</div>

现在,当我点击链接时,我只想刷新div内容。

我已经在堆栈中尝试了一些代码查找,但我的知识仍未实现。

我尝试了什么并且它不起作用:

$(document).on('click', '.ajax_add_to_cart_button', function() {
    $("#div1").load()       /*also $("#div1").load("#div1")*/
});     

$("#div1").load(location.href + " #div1");

还有更多。

编辑,这对我来说也不起作用:

$(function(){
$(document).on('click', '.ajax_add_to_cart_button', function(e) {
e.preventDefault();
$("#div1").load($(this).attr("href")); /*and this:  $("#div1").load($(this).attr("href #div1"));*/
return false
});
});

EDIT2:当我尝试此代码时,只有一半工作

$(document).ready(function(){
$(".ajax_add_to_cart_button").click(function(){
$("#div1").html("result reloaded successfully");
});
});
为什么有一半?因为文本只显示在第一个产品中,所以无论我点击哪一个产品,我都会尝试将html()切换为load()refresh(),但之后无效。< / p>

EDIT3

$(document).ready(function(){
var productid = "{product.id_product}"
$(".ajax_add_to_cart_button").click(function(){
$("#div1" + productid).html("result reloaded successfully");
});
});


<div id="div1{product.id_product}">{if $added}Added{else}not added{/if}</div>

它是所有产品中的显示信息,产品中的所有容器现在都有不同的ID。

3 个答案:

答案 0 :(得分:0)

尝试关注并检查它是否有效..

$(function(){
 $(document).on('click', '.ajax_add_to_cart_button', function(e) {
    e.preventDefault();
    $("#one").load($(this).attr("href"));
    return false.
});

});

我注意到你的选择器中有错误的类。请检查一下。

答案 1 :(得分:0)

嗯......我明白了...我猜你的问题是你对所有产品使用相同的ID。 DOM'应该'拥有一个元素的唯一ID,尝试另一种方式,也许是一个简单的类作为选择器,你不能对所有元素使用相同的id :)

例如(我假设你的div有mybeautifuldiv类):

$(document).ready(function(){
    $(".ajax_add_to_cart_button").click(function(){
        $(".mybeautifuldiv").html("result reloaded successfully");
    });
});

答案 2 :(得分:0)

如果您在有产品列表(类别页面等)时尝试执行此操作,则需要定位适当的div。而你可能不想在你的div中使用id但是类。

<div class="my-custom-div">{if $added}Added{else}not added{/if}</div>

这个div是否在'添加到购物车'锚点? 如果是,那么你需要定位它:

$(document).ready(function(){
    $(".ajax_add_to_cart_button").click(function() {
        $(this).find('.my-custom-div').html('Content updated!');
    });
});

如果不是那么你可以遍历产品的父div并在其中找到你的自定义div。例如,在默认prestashop主题的类别页面中:

$(document).ready(function(){
    $(".ajax_add_to_cart_button").click(function() {           
        $(this).closest('.product-container').find('.my-custom-div').html('Content updated!');
    });
});