0

我有这个 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。

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

还有什么问题?

谢谢你。

4

1 回答 1

2

您将变量设置orderIdClientID使用:

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

will的值ClientID需要用引号括起来以使其成为字符串文字,尽管(最初错过了这一点,感谢 Yuriy),否则这本身会导致问题:

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

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

 jQuery("orderId")

 jQuery("#orderId")

现在第一个是寻找一个元素(或者更确切地说是所有元素)orderId,第二个是寻找一个标识符为 的元素"orderId"。因此,您的代码在没有 .runat="server" runat="server"

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

jQuery(orderId)

更准确地说,假设您正在使用选择器中的标识符:

jQuery("#" + orderId)

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

于 2012-10-24T10:07:42.300 回答