【发布时间】:2011-12-02 07:59:59
【问题描述】:
我将点击事件绑定到超链接。 Onclick 超链接的值(内部文本)保存在隐藏字段中。有了这个值,我在页面重新加载(ASP.NET)之后工作。 它有效 - 但问题是:
如果我单击链接 1,一切正常。 如果我点击link2,一切正常。
如果我单击链接 1,然后(非常快)单击链接 2,隐藏字段具有旧值(链接 1)。
有人有办法解决这个问题吗?
$(function () {
var innertxt = "";
$("span[id$='myLink']").bind("click", function () {
innertxt = ($(this).text());
if (innertxt == "myLinkText1" || innertxt == "myLinkText2") {
$("input[id$='myHiddenField']").val(innertxt);
} else { $("input[id$='myHiddenField']").val(""); }
});
});
(与 ASP.NET 页面重新加载相结合的代码,这意味着单击链接 $("span[id$='myLink']") 后,页面会重新加载。)
// 编辑
我已经有一个 onclick(内联)事件。 显然绑定是在 onclick 事件触发后开始的,所以为时已晚。
我已将代码放在 onclick 内联事件中,它正在工作。
感谢您的建议!
//结束编辑
【问题讨论】:
-
你是不是每次点击都会清理输入值
-
我用 jQuery 控制点击。所以我在第一行添加了(在...(“click”,function(){...)innertxt =“”;之后,但根本没有改变。
-
我认为你做错了。请告诉我们你想做什么?
-
我使用隐藏字段仅在单击与隐藏字段中的值相关的链接后显示文件。它有效,但前提是我等到页面完全加载。如果我在一个链接上单击太快,然后在另一个链接上单击太快,则隐藏字段具有第一个链接的旧值,并显示错误的文件。
-
你为什么要附加跨度,虽然你说它们是超链接?
标签: jquery asp.net hidden-field