我使用以下脚本替换店面/购物插件中的短代码提供的一些文本。如果您将项目添加到购物车并转到结帐,则可以看到以下操作。
pcos_eddiscountcode = function () {
var pcos_edd_discount_code = jQuery('#edd_discount_code').html();
var new_pcos_edd_discount_code = pcos_edd_discount_code.replace('Click to enter it', 'Click here to enter it');
jQuery('#edd_discount_code').html(new_pcos_edd_discount_code);
};
工作正常,但它会在插件的完全独立部分引起问题。你可以看到它here (add to cart buttons are ignoring my css and forcing a page redirect on click).
我收到以下错误:
TypeError: undefined is not an object (evaluating 'pcos_edd_discount_code.replace')
我是javascript的新手,所以其他任何人都表示赞赏!
:)
答案 0 :(得分:0)
这是因为当beatpcos_script.js被加载到/ store / page中时,pcos_eddiscountcode
会调用jQuery(document).ready
。 pcos_eddiscountcode
仅存在于/ checkout / page中,因此jQuery无法在/ store / page中找到id #edd_discount_code
,这就是为您提供未定义的消息。
要解决此问题,请将pcos_eddiscountcode
函数(以及/ checkout / page的其他必要函数)移动到单独的javascript文件中,并仅在checkout / page中包含特定于checkout的javascript文件。