我最近一直在使用一些代码,当人们使用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

10-05 20:43
查看更多