2014-11-25 3 views
0

У меня есть этот код:Почему JQuery не работает для свойства CssClass LinkButton в asp.net?

JQuery:

$(".clr").click(function() { 
      $(".clr").each(function() { 
       $(this).parents("li").css("background", "#000") 
      }) 
      var color1 = "#f8ac00"; 
      $(this).parents("li").css("background", color1); 
     }); 

ASP.NET:

<ul id="css3menu1" class="topmenu"> 

        <li class="topfirst"> 
         <asp:LinkButton ID="lnkbtn_dashbd" CssClass="clr" Height="18" Width="100" runat="server">Dashboard</asp:LinkButton> 
        </li> 
        <li class="topmenu"> 

         <asp:LinkButton ID="lnkbtn_events" CssClass="clr" Height="18" Width="100" runat="server">Events</asp:LinkButton> 

        </li> 
        <li class="topmenu"> 
         <asp:LinkButton ID="lnkbtn_myaccount" CssClass="clr" Height="18" Width="100" runat="server">My Account</asp:LinkButton> 


        </li> 


        <li class="toplast"> 
         <asp:LinkButton ID="lnkbtn_abtus" CssClass="clr" Height="18" Width="100" runat="server">About Us</asp:LinkButton> 
        </li> 
       </ul> 

ссылка Изображение: Menu

Я определил CssClass свойство LinkButton, отображение его к классу JQuery. Но при нажатии этот код не работает. Я не знаю почему? Пожалуйста, помогите мне.

+2

Как предложение, используйте 'closest' вместо', если вы с родителями ожидать одного, или первый, матч. Вы также можете упростить первую часть только до $ $ ("li: has (.clr)"). Css ("background", "# 000") ' –

+1

Вы также используете селектор $ (". Clr ") дважды , вы можете определить его во внешней переменной и использовать его так: var buttons = $ (". clr") –

ответ

1

Помимо того, что вы не знаете, какое поведение вы получаете от нажатия кнопки (пересылка страницы?), Это только мои предложения, собранные для вас, чтобы попробовать.

Пожалуйста, попробуйте следующее в качестве теста:

$(".clr").click(function (e) { 
     // Stop the click behavior for now (postback?) 
     e.preventDefault(); 

     // Turn off all the LIs 
     $("li:has(.clr)").css("background", "#000"); 

     // Turn on the closest LI to the clicked linkButton 
     var color1 = "#f8ac00"; 
     $(this).closest("li").css("background", color1); 
    }) 
+1

@Manoj Maximum: Это были только кнопки, перезагружающие страницу, как я предполагал? –

+0

фактически nope. Это не перезагрузка страницы. Мой код не меняет цвет фона «li». Твой сделал это. THANK YOU –

+0

Это странно ... Мне сейчас очень любопытно, что было не так с вашим кодом (как и должно было работать). Можете ли вы опубликовать JSFIddle с HTML из сохранения - как в браузере (а не в источнике), чтобы я мог проверить его? –

Смежные вопросы