【发布时间】:2020-01-27 22:10:57
【问题描述】:
我有以下 HTML 代码,其中包含了 Bootstrap Tabs/Pills。我的目标是让用户看到前一天和过去 7 天的数据计数,具体取决于他们选择的选项卡。我有一个有效的 AJAX 调用,它从过去 24 小时和过去 7 天中提取一个计数。
但是,每当我点击“周”标签时;数据仍然显示白天的数据。有人可以建议我哪里出错了吗?
谢谢
HTML:
<div class="col-md-4 border rounded">
<h4><u>Count </u></h4>
<ul class="nav nav-pills">
<li class="active"><a data-toggle="pill" onclick="$('#time_runs').text('day-time')" href="#today_num">Day</a></li>
<li><a data-toggle="pill" onclick="$('#time_runs').text('week-time')" href="#week_num">Week</a></li>
</ul>
</div>
AJAX 调用:
$(document).ready(function getMetadata() {
$(function poll() {
$.ajax({
url: "<!--#include virtual="../include/env"-->/count/" + ($('#time_runs').text() == '' ? 'day-time' : $('#time_runs').text()),
type: "GET",
cache: "false",
success: function(data) {
count(data);
},
dataType: "json"
});
})
})
;
【问题讨论】:
-
你是如何调用 poll() 函数的?为什么它被包裹在
$(??。看起来您可能会在页面加载时调用此函数一次,之后再也不调用它。您需要确保在用户选择选项卡时调用该函数。 -
您好 ADyson,1. poll() 函数添加错误。我已将它从我的代码 2 中删除。我的印象是 $() 是调用 id 的正确语法? 3. 这也是我的假设。它与 $(document).ready 有关吗?你会建议代码的外观如何?
-
"$() 是调用 id 的正确语法吗?" ...该语法调用 jQuery 构造函数,该构造函数通常用于选择元素...但是您正在使用它来包装函数定义,在这种情况下,它没有多大意义。
-
$(document).ready 用于包装一个代码块,您希望延迟其执行直到页面完全加载(例如,在元素上设置事件处理程序,同时确保这些元素在处理程序被声明)。在继续之前,您可能需要复习一下 jQuery 和 JavaScript 基础知识
-
如果您准备好耐心等待,那么当我下次走到电脑前时,我会为您拼凑一个代码示例。我现在在手机上,所以很难输入,几乎不可能测试
标签: javascript html ajax twitter-bootstrap tabs