2012-06-23 103 views
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"); 
      }); 
     }); 

请指导我。

+0

你在这里有什么问题?以及重点在哪里定义? – Aristos

+0

是母版页上的标签? –

+0

是的,我的标签只在主页上,我只需要使用客户端代码。 –

回答

2

的ID如果你有一个标签服务器控件,在回发之前用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> 
+0

其工作很好谢谢你..! –

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客户端页面的值赋给标签 - 用我提供的

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

}); 
相关问题