无法获得.ascx服务器控件ID

时间:2013-03-05 08:50:13

标签: javascript jquery asp.net html

下面是我的.ascx页面的一些示例代码,我正在尝试使用jquery来执行某些操作,$("input")很好地帮助了我,但$("asp:Label")无效。我应该包括什么以使$("asp:Label")工作

<asp:Label ID="lblInvolvedMembers" runat="server"></asp:Label>
<asp:Label ID="lblAcceptedBy" runat="server">    </asp:Label>
<input type="text" id="family" value="family " />
<input type="button" id="family1" value="button" />

//here i am trying to get server control to perform some action,   $("input") served me well but  $("asp:Label") is not working. what should i include inorder to make  $("asp:Label") work

$("asp:Label").hover(function() {
        Tip.text('');
        var ToolTipID = $(this).attr('id');
        var height = $(this).height() + 10;
        var offset = $(this).offset();
        if (data[ToolTipID].split('<br\>').length - 1) {
            var temp = data[ToolTipID].split('<br\>').length - 1;
            height = temp * 10;
        } else {
            height = 10;
        }

  $("input").hover(function() {
        Tip.text('');
        var ToolTipID = $(this).attr('id');
        var height = $(this).height() + 10;
        var offset = $(this).offset();
        if (data[ToolTipID].split('<br\>').length - 1) {
            var temp = data[ToolTipID].split('<br\>').length - 1;
            height = temp * 10;
        } else {
            height = 10;
        }

3 个答案:

答案 0 :(得分:1)

你想要改变

<asp:Label ID="lblInvolvedMembers" runat="server"></asp:Label>

类似

<asp:Label ID="lblInvolvedMembers" runat="server" CssClass="label"></asp:Label>

然后你可以在这里使用jQuery选择器

$('.label').hover(function() {

而不是

$("asp:Label").hover(function() {

这样,所有标签都将具有jQuery悬停功能。

如果您希望悬停特定标签,则必须使用

$('#<%= lblInvolvedMembers.ClientID %>').hover(function() {

ASP标签在传递到客户端浏览器之前被处理,其中javascript可以对它们起作用,因此

lblInvolvedMembers会变成类似ctl0_label_lblInvolvedMembers的东西。

<强>更新

看起来你还没有关闭你的jQuery函数

$('.label').hover(function() {
        Tip.text('');
        var ToolTipID = $(this).attr('id');
        var height = $(this).height() + 10;
        var offset = $(this).offset();
        if (data[ToolTipID].split('<br\>').length - 1) {
            var temp = data[ToolTipID].split('<br\>').length - 1;
            height = temp * 10;
        } else {
            height = 10;
        }
});

$("input").hover(function() {
    Tip.text('');
    var ToolTipID = $(this).attr('id');
    var height = $(this).height() + 10;
    var offset = $(this).offset();
    if (data[ToolTipID].split('<br\>').length - 1) {
        var temp = data[ToolTipID].split('<br\>').length - 1;
        height = temp * 10;
    } else {
        height = 10;
    }
});

我不确定Tipdata是什么,但您可以在此jsFiddle上看到有效的.hover()函数 - &gt; http://jsfiddle.net/XF4Zk/此处标签的ID表示ASP.NET创建的控件的客户端ID,这就是为什么要使用lblInvolvedMembers.ClientID获取Javascript控件的值的原因

答案 1 :(得分:0)

尝试

$('input[id$=lblInvolvedMembers]').hover(function() {
 });

答案 2 :(得分:0)

试试这个:

$('#<%=Label.lblInvolvedMembers%>').hover();

或者这个:

$('#<%=Label.lblInvolvedMembers%>').hover();