hasClass()在setInterval中不评估true

时间:2012-08-17 07:04:45

标签: jquery facebook setinterval

好的,这是我的问题: 我试图通过检查是否点击了Facebook按钮来触发重定向。 如果已经点击,那么我可以继续检查某个div是否具有某个类。如果它在任何时候评估为true,它将触发重定向。 但它没有这样做。

我正在使用setInterval的原因是它必须在页面加载时进行检查,并且如果他们已经喜欢它,则必须连续检查。

这是HTML:

<div class="pluginConnectButton">

<div title="" class="pluginButton pluginButtonSmall pluginConnectButtonDisconnected hidden_elem">
    <div>
    <button type="submit">
    <i class="pluginButtonIcon img sp_like sx_like_fav"></i>Like
    </button>
    </div>
</div>

<div title="" class="pluginButton pluginButtonSmall pluginButtonPressed pluginButtonX pluginConnectButtonConnected">

<div>
<button type="submit">
<i class="pluginButtonIcon pluginButtonXOff img sp_like sx_like_ch"></i>
<i title="" class="pluginButtonIcon pluginButtonXOn img sp_like sx_like_x"></i>
</button>Like
</div>

</div>
</div>

这是JS / jQuery:

setInterval(

function(){
if ($('div.pluginConnectButton div').eq(0).hasClass('hidden_elem')) {

    window.open('http://thebasinhaircutters.com.au/competitions/abd/m/next.php', '_parent');

}}

,1000);

1 个答案:

答案 0 :(得分:1)

它基于这个测试吗?

var interval = null;
$(function() {
    interval = setInterval(function() {
    if($('input').hasClass('clicked')) {
        clearInterval(interval);
        alert('I\'ve been clicked!');​​
    } else {
        console.log('I\'ve not been clicked');
    }
    }, 1000);
    $('input').click(function() {
    $(this).addClass('clicked');
    });
});
​

示例:http://jsfiddle.net/gRoberts/8ZXba/

密切注意控制台,看看它是否经过每个间隔,然后点击按钮,警报就会显示出来。