我最近一直在使用一些代码,允许人们在使用我们的网站以英镑货币支付时使用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似乎不起作用。
现在这在谷歌浏览器中完美运行,这是我一直在测试的。但由于某种原因,这不适用于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>
答案 0 :(得分:1)
定义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
。通过浏览器检查Javascriptdisabled/not supported
。
这是setInterval
函数语法
window.setInterval(myCallbackFunction, DurationInMilliseconds);
示例:
var intervalID = window.setInterval(myCallback, 500);
function myCallback() {
// Your code here
}
有关setInterval()功能的更多详细信息。并jQuery Browser Support