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。