【发布时间】:2016-07-03 09:43:09
【问题描述】:
我有一个带有 JQuery 的网页,它读取 json 文件并在网页上显示标签,还为用户提供手动添加标签的可能性。 下面是java脚本:
$(document).ready(function() {
setInterval(function, 2000);
$.getJSON('https://api.myjson.com/bins/1058x', function(res){
$.each(res.data, function(key, val){
$("<span class='tag label label-info'><span>"+val.tag+"</span><span class='glyphicon glyphicon-remove-sign'></span></span>").appendTo('.list')
});
});
$('#addButton').click(function() {
var toAdd=$('input[name=checkbox]').val();
var tag = "<span class='tag label label-info'><span>"+toAdd+"</span><span class='glyphicon glyphicon-remove-sign'></span></span>"
$(tag).appendTo('.list');
});
$('.list').on('click','span',function() {
$(this).parent().remove();
});
});
下面是 HTML 代码:
<div class="jumbotron" style="border: 1px solid">
<h2 class="text-center">Tag suggestions:</h2>
<div class="row">
<p><br></p>
<div class="col-md-3 col-lg-3 text-center">
Refresh Rate:
</div>
<div class="col-md-7 col-lg-7 pull-left">
<input type="range" min="0" max="60" step="1" value="30" style="width:85%" onchange="updateTextInput(this.value);" />
</div>
<div class="col-md-2 col-lg-2 pull-left">
<input class="text-center" id="rangeValue" type="text" value="30" style="width:25%;border:2px solid #456879; border-radius:4px;" /> Minutes
</div>
</div>
<br><br>
<div class="text-center">
<div class="list">
</div>
</div>
<br><br>
<div class="text-center">
<form id="tagInput">
<input type='text' name='checkbox' style="border:2px solid #456879; border-radius:10px; height: 26px; width: 230px;"/>
</form>
<br><br>
<button id="addButton" class="btn btn-primary">Add New</button>
</div>
</div>
</div> <!-- /container -->
我还创建了一个jsFiddle here。 我现在想要每两分钟刷新一次 javascript。这样它就可以每两分钟读取一次文件并再次显示标签,而无需一次又一次地重新加载页面,而只是标签。我会非常感谢您的帮助。
谢谢。
【问题讨论】:
-
您可以使用 setInterval 或 settimeout 每 2000 毫秒获取一次值。 (我可以看到使用了 setInterval)。只需定义一个适当的函数并使用它/让我们知道您面临的挑战是什么?
-
setInterval(function, 2000);是语法错误... -
我已经尝试按照@sigorilla 解决方案实现 setInterval,它的工作是我面临的唯一问题是将每次标签附加到以前添加的标签。我希望当它再次读取 JSON 文件时,它应该删除以前写入的标签。
标签: javascript jquery html refresh