div显示时停止setInterval:none

时间:2015-05-17 08:22:24

标签: javascript html css

我在我的网站上使用setInterval函数每20秒将新内容加载到一个div。它工作得很好(至少看起来,也许还有更好的选择吗?)。

问题是我想使用响应式设计,在小屏幕上这个div将显示:none属性,但是JS功能仍然可以正常工作并且“吃掉”#39;数据

当div显示时,是否有可能运行此代码:none属性?

setInterval(function() {
    $('#test').load("test.php");
}, 20000);

3 个答案:

答案 0 :(得分:1)

您可以检查<?php use yii\helpers\Html; use yii\widgets\ActiveForm; $form = ActiveForm::begin(); ?> <td><?= $form->field( $model , 'id')->textInput()->label(false) ?></td> <td></td> <td></td> <td class="text-center"><?= $form->field( $model , 'quantity')->textInput()->label(false) ?></td> <td> <?= Html::submitButton('<i class="mdi-action-done"></i>',[ 'class' => 'btn btn-add pull-right', 'data-toggle'=>'tooltip' , 'data-placement'=>'bottom', 'title'=>'Добавить товар', ]) ?> </td> <?php ActiveForm::end(); ?>

div是否可见
setInterval

您还可以专门检查setInterval(function() { if($('#test').is(':visible')) //if visible then load $('#test').load("test.php"); }, 20000); 属性

display

答案 1 :(得分:1)

您可以使用以下代码检查属性是否可见:

$(element).is(":visible"); 

所以你可以写:

setInterval(function() {
    if($('#test').is(":visible"){    
        $('#test').load("test.php");
    }
}, 20000);

答案 2 :(得分:0)

您可以查看显示的#test

var test = $('#test');
if(test.css("display")!="none")
    test.load("test.php");