2

我正在使用 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");
            });
        });

请指导我。

4

3 回答 3

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>
于 2012-06-23T00:19:14.770 回答
1

如果我解决了您的问题,则标签位于母版页上,并且 $('#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

于 2012-06-23T00:18:31.447 回答
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;
    }

});
于 2012-06-23T00:59:13.203 回答