我正在使用c#在asp.net上工作。我有一个主页面,其中包含3个锚标记链接和一个html标签。当用户点击特定链接时,它应该重定向到特定页面,并且链接文本应该显示在标签上。我使用了以下代码,
$(document).ready(function () {
$('#div1 a').click(function () {
if (focus == true)
$('#lblHeader').text("Home");
});
$('#blog').click(function () {
if (focus == true)
$('#lblHeader').text("Blog");
});
$('#about').click(function () {
if (focus == true)
$('#lblHeader').text("About");
});
});
请指导我。
答案 0 :(得分:2)
如果您有标签服务器控件,则在回发之前使用javascript更改文本将不会生效,因为整个页面已重新绘制。
编辑:我想我知道你要做什么。为什么不在主页面中创建contentplaceholder
,并在每个页面中设置其值?
在您的母版页中:
<%@ Master Language="C#" %>
...
<asp:contentplaceholder id="PageLabel" runat="server" />
在每个内容页面中:
<asp:Content ID="Content1" ContentPlaceHolderID="PageLabel" Runat="Server" >
Home <!--or about, or blog-->
</asp:content>
答案 1 :(得分:1)
如果我的问题正确,那么标签就在Master页面上,而$('#lblHeader')没有正确访问标签,可能是因为asp.net更改了母版页标签的id - 尝试这样:
$(document).ready(function () {
$('#div1 a').click(function () {
if (focus == true)
$('[id$=lblHeader]').text("Home");
});
$('#blog').click(function () {
if (focus == true)
$('[id$=lblHeader]').text("Blog");
});
$('#about').click(function () {
if (focus == true)
$('[id$=lblHeader]').text("About");
});
});
或将该值存储在隐藏字段中,并在客户端页面的document.ready中将值分配给标签 - 使用我提供的ID
答案 2 :(得分:0)
如果您希望用户在点击链接后看到某些内容,则需要阻止浏览器默认设置并为您想要的持续时间设置计时器。
这不会提供非常好的用户体验!
$('#div1 a, #blog, #about').click(function() {
if (focus == true) {
$('[id$=lblHeader]').text("Home");
var href = this.href
setTimeout(function() {
window.location = href;
}, 2000);
return false;
}
});