如何在锚标签上执行click事件

时间:2012-06-23 00:14:04

标签: jquery asp.net html

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

请指导我。

3 个答案:

答案 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;
    }

});