M2 如何ajax请求后初始化js
M2 如何ajax请求后初始化js
m2代码里经常看到
<script type="text/x-magento-init">
类似的初始化js代码。
比如加入购物车 ajax提交的。
<script type="text/x-magento-init">
{"[data-role=tocart-form], .form.map.checkout": {"catalogAddToCart": {}}}
</script>
当产品列表使用ajax分页的时候,这个初始化的代码就失效了,导致无法ajax提交 直接跳转页面去了。
解决办法很简单,就是在ajax 结束后 加一行
contentEle.trigger('contentUpdated');
比如:
var contentEle = $('#wwof_product_listing_ajax_content');
function ajaxGetProduct(params,url=false){
if(!url){
url = '<?php echo $block->getAjaxUrl(); ?>';
}
$.ajax({showLoader: true,url: url,data: params,type: "POST",dataType: 'json'})
.done(function (data) {
//contentEle.removeClass('hideme');
var html = data.content;
contentEle.html(html);
contentEle.trigger('contentUpdated');
});
}
这样的话 就告诉页面 内容更新了。要求再初始化一次相关的js。
