我在我的网站上使用setInterval函数每20秒将新内容加载到一个div。它工作得很好(至少看起来,也许还有更好的选择吗?)。
问题是我想使用响应式设计,在小屏幕上这个div将显示:none属性,但是JS功能仍然可以正常工作并且“吃掉”#39;数据
当div显示时,是否有可能运行此代码:none属性?
setInterval(function() {
$('#test').load("test.php");
}, 20000);
答案 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");