我最近一直在使用一些代码,当人们使用GBP货币使用我们的网站时,允许人们使用Paypal Express Checkout进行付款,但是当他们使用欧元,美元或任何其他货币时,我不希望在该选项中进行付款。
在我的自定义CSS中,我使用了
.paypalbutton {display: none !important;}
然后在我的Javascript / Jquery中
window.setInterval(function(){
if (jQuery(".currency-selector:contains('GBP')").length) {
jQuery(".paypalbutton").attr('style', 'display: inline-block !important');
} 1000});
我这样做的原因是因为Paypal按钮是用PHP动态加载的。由于某种原因,.on和.live似乎不起作用。
现在,这在我正在测试的Google Chrome浏览器中可以完美运行。但是由于某种原因,这在Firefox中将不起作用(尚未测试其他浏览器)。所以我的问题是,为什么它不能在Firefox中工作?
谢谢你的帮助。
更多信息:
在控制台中键入代码时,firefox似乎没有任何问题,只是在“ GBP”上应显示的paypal按钮未在firefox中显示,而在chrome中显示。
Chrome具有:
.paypalbutton {display: inline-block !important}
<strike>.paypalbutton {display: none !important}</strike>
Firefox具有:
.paypalbutton {display: none !important}
<strike>.paypalbutton {display: inline-block !important}</strike>
最佳答案
您在定义setInterval
函数时出错
尝试如下:
window.setInterval(function(){
if(jQuery(".currency-selector:contains('GBP')").length){
jQuery(".paypalbutton").attr('style', 'display: inline-block !important');
/*jQuery(".paypalbutton").css({
'display' : 'inline-block !important'
});*/
}
},1000);
注意:
Console
两种浏览器的输出。检查是否有任何Script Error
。通过浏览器检查Javascript disabled/not supported
是否。这是
setInterval
函数语法window.setInterval(myCallbackFunction, DurationInMilliseconds);
范例:
var intervalID = window.setInterval(myCallback, 500);
function myCallback() {
// Your code here
}
有关setInterval()函数的更多详细信息。还有jQuery Browser Support