JQuery скрипт выполняет, но не устанавливает CSS для .Show - PullRequest
0 голосов
/ 20 апреля 2009

У меня есть код jquery, который используется повторяющимся частичным представлением на странице mvc asp.net, но скрипт не выполняется так, как я ожидаю.

Сценарий не такой сложный, у меня есть страница с несколькими отзывами для элемента, и пользователям, которые вошли в систему, разрешено «голосовать» или «отклонять» отзыв с помощью кнопок «вверх» / «вниз» ( похоже на digg).

У меня текст каждого сценария отображается внутри <span>, где id = 'spanname -' + reviewId, поэтому рейтинг каждого отзыва уникален (так как он повторяется, поскольку на странице существует несколько обзоров, каждый из которых обладает одинаковыми функциями) так например если я хочу попросить пользователя войти в систему, если он не в настоящее время, у меня есть следующий HTML

<span id="login-<%=Model.EntityId%>" style="margin: 0 5px 0 5px;display:none;">
        Why not <a href="#">login</a> and rate this? 
</span>

и соответствующий метод initialise (), который устанавливает

var isAuthenticated = <%=Request.IsAuthenticated.ToString().ToLower() %>;
function initialise()
   {
        if (isAuthenticated)
           {//hide login spans, unhide other spans}
       else
           {
               //alert('user not logged in')
               $('rate-<%=Model.EntityId%>').hide();
               $('login-<%=((GigItModel)Model).EntityId%>').show();
               //alert($('login-<%=((GigItModel)Model).EntityId%>'));
           }
    }
    $().ready(function()
       {
        initialise();
       });

Я поместил кнопки оповещения, чтобы проверить, что он обнаруживает вошедшего в систему пользователя против не вошедшего в систему пользователя, а также что он ссылается на объекты, но по какой-то причине страница не отображает атрибуты CSS и не показывает НИКАКОГО из <span> (или все, если я уберу дисплей: нет в атрибутах style)

Может кто-нибудь подсказать, почему jquery не выполняется так, как ожидалось? Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 20 апреля 2009

Предложение - не используйте JavaScript, чтобы скрыть эту функциональность. Используйте ASP-код, чтобы написать HTML-код, который позволяет голосовать, и поле для входа в систему, основанное на том, что пользователь вошел в систему. Вы не должны оставлять эту логику в сценариях на стороне клиента, что будет, если у кого-то отключен JavaScript?

Однако, чтобы решить вашу проблему, вам нужно # перед кодом, чтобы решить что-то по ID:

$('#rate-<%=Model.EntityId%>').hide();
$('#login-<%=((GigItModel)Model).EntityId%>').show();
2 голосов
/ 20 апреля 2009

Вы забыли использовать # перед вашими идентификаторами

$('#rate-<%=Model.EntityId%>').hide();
$('#login-<%=((GigItModel)Model).EntityId%>').show();
0 голосов
/ 20 апреля 2009

Чтобы выбрать элементы DOM по идентификатору, используйте #id_of_element:

$('#rate-<%=Model.EntityId%>').hide();
$('#login-<%=((GigItModel)Model).EntityId%>').show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...