标签不使用生成的服务ID

时间:2012-10-24 10:00:16

标签: jquery asp.net css

我有这个jQuery文件

   jQuery(document).ready(function() {        
     var orderId= <%= OrderLi.ClientID %>;

    jQuery("#ApprovalTab").css("display", "block");
    jQuery("#ApprovalLi").css("background-color", "#5EA8DE");
    jQuery("#ApprovalLi a").css("color", "#FFF");
    jQuery("#OrdersTab").css("display", "none");
    jQuery("#ApprovalLi a").css("border-bottom", "3px #5EA8DE solid");

    jQuery("#ApprovalLi").click(function() {
        jQuery("#ApprovalTab").css("display", "block");
        jQuery("#ApprovalLi").css("background-color", "#5EA8DE");
        jQuery("#ApprovalLi a ").css("color", "#FFF");
        jQuery("#orderId a").css("color", "black");
        jQuery("#Arrow").css("margin-left", "15px");
        jQuery("#ApprovalLi a").css("border-bottom", "3px #5EA8DE solid");
        jQuery("#orderId a").css("border-bottom", "3px #D8D9DC solid");
        jQuery("#orderId").css("background-color", "#F0F1F4");
        jQuery("#OrdersTab").css("display", "none");

    });

    jQuery("orderId").click(function() {
        jQuery("#ApprovalTab").css("display", "none");
        jQuery("#OrdersTab").css("display", "block");
        jQuery("#Arrow").css("margin-left", "112px");
        jQuery("#orderId").css("background-color", "#5EA8DE");
        jQuery("#orderId a").css("border-bottom", "3px #5EA8DE solid");
        jQuery("#ApprovalLi a").css("border-bottom", "3px #D8D9DC solid");
        jQuery("#ApprovalLi").css("background-color", "#F0F1F4");
        jQuery("#orderId a").css("color", "#FFF");
        jQuery("#ApprovalLi a").css("color", "black");


    });

    jQuery("#orderId").hover(function() {
        jQuery("#orderId a").css("border-bottom", "3px #5EA8DE solid");
    });

    jQuery("#ApprovalLi").hover(function() {
        jQuery("#ApprovalLi a").css("border-bottom", "3px #5EA8DE solid");
    });
  });

适用于此:

<ul class="etabs">
<li id="ApprovalLi"><a href="#stopAtTop">Approval </a></li>
<li id="OrderLi" runat="server"  ><a href="#stopAtTop">Orders</a></li>
</ul>

如果我不使用runat =“server”代码工作得很好,但是当我使用它时,代码不会呈现。我在互联网上搜索了一些东西,但我发现的唯一一件事是“ID正在改变”。我已经知道了,你可以在上面的jQuery中看到我正在使用服务器ID。

顺便说一句:我知道我可以优化上面的代码,但我希望它能够先工作。

还有什么问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

使用以下代码将变量orderId设置为ClientID

var orderId= <%= OrderLi.ClientID %>;

ClientID的值需要用引号括起来使它成为一个字符串文字,但是(最初由于Yuriy错过了这个),否则这本身就会引起问题:

var orderId= '<%= OrderLi.ClientID %>';

但是似乎根本没有利用它,而是试图使用另外两种方法访问一些orderId的东西,这两种方法都使用jQuery选择器中的硬编码字符串文字:

 jQuery("orderId")

 jQuery("#orderId")

现在第一个是查找orderId的元素(或者更确切地说是所有元素),第二个是标识符为"orderId"的元素。因此,完全偶然的是,您的代码只是在没有 runat="server"的情况下工作并且似乎在添加 runat="server"时突破。

你想要的是实际使用你的变量:

jQuery(orderId)

更准确一点,因为你正在使用选择器中的标识符:

jQuery("#" + orderId)

使用哈希而不是每次使用(取决于总使用量)为变量值添加前缀可能更有用。