【发布时间】:2023-03-24 21:15:02
【问题描述】:
我有以下 HTML,我已将 Jquery 选项卡应用于:
<div id="lineitems">
<ul>
<li><a href="#not-issued" onClick="displayItems()">Not Issued</a></li>
<li><a href="#issued" onClick="displayItems()">Issued</a></li>
<li><a href="#search" onClick="displayItems()">Search</a></li>
</ul>
<div id="not-issued">Not Issued Items</div>
<div id="issued">Issued Items</div>
<div id="search">Search for items</div>
</div>
我有以下 jQuery 函数,它可以做它应该做的事情,当你点击已发布的选项卡等时,它将返回“已发布”。
$("#lineitems").tabs({
beforeActivate: function (event, ui) {
var issued = ui.newPanel.attr('id'); //Get newly selected tab
alert(issued);
}
});
alert(issued);
第一个alert 正确返回“已发布”或选择的任何选项卡,但是第二个alert 返回[object htmldivelement]。我不确定为什么它没有返回相同的值。我做错了什么?
为了将其置于上下文中,我试图获取所选选项卡的值,以便我可以相应地更改提交按钮的值,然后将(所选选项卡的)值传递给 ajax 函数。
我也尝试过使用:
$("#lineitems").bind("tabsactivate", function(event, ui) {
issued = ui.newTab.index();
alert(issued);
});
但我又遇到了同样的问题,即发出的变量在函数之外返回空。
编辑:使用 Bhushan Kawadkar 的回答我得到了它的工作,我还必须使用 toString() 将 issued 更改为字符串以正确地将其传递给 Ajax 函数。
我也按照 T J 的建议从我的链接中删除了 onClick 事件,因为它们不是必需的,因为每次单击新标签时都会调用该函数。
【问题讨论】:
-
我确实尝试了关于该问题的建议,但我遇到了同样的问题,仍然无法访问函数外的变量
标签: javascript jquery html jquery-ui jquery-ui-tabs