настройка функциональности щелчок для переключателя не работает в IE - PullRequest
0 голосов
/ 06 июля 2010

Моя проблема довольно раздражающая, возможно, что-то действительно глупое, но я обошел ее и не нашел решения. Я вызываю на 2 разных страницах это частичное представление:

<div id="NotificationStatusSuspensionDiv">     
     <p>
        <strong><%= Html.Label("Status :") %> </strong><br />

        <input type="radio" name="NotificationStatusSuspension" id="statusA" value="A" checked="checked" />
        <label for="statusA">Active</label>
        <input type="radio" name="NotificationStatusSuspension" id="statusN" value="N" />
        <label for="statusN">Not Active</label>
     </p>
 </div>    

Дело в том, что в методе document.ready во внешнем файле javascript я делаю это:

  $('input:radio[name="NotificationStatusSuspension"]').each(function() {
    $(this).click(function() {
           setNotificationStatus($(this));
    });
});

Я видел, что это работает нормально, когда я нажимаю на кнопку радио, он загружает уведомления, которые соответствуют статусувыбранный (это то, что делает setNotificationStatus).Проблема заключается в том, что, когда я добавляю пользовательский интерфейс к радиокнопке, вот так:

$('#NotificationStatusSuspensionDiv').buttonset();

Со всем этим кодом он прекрасно работает в Firefox и Chrome, но в IE он ничего не делает.Это как если бы он не распознал щелчок мыши.Самое смешное в этом то, что у меня более или менее тот же код в другой части сайта, и он прекрасно работает с IE .... У вас есть какие-либо подсказки?

1 Ответ

1 голос
/ 07 июля 2010

Я бы попробовал несколько вещей:

В вашем селекторе jQuery попробуйте поместить кавычки вокруг атрибута для соответствия:

$('input:radio[name="NotificationStatus"]')

Попробуйте использовать метод each () jQuery, чтобы вашсобытия связаны следующим образом:

$('input:radio[name="NotificationStatus"]').each(function(){
  $(this).click(function(){
    alert($(this).val());
  });
});

И, наконец, попробуйте идентифицировать вещи только с помощью буквенно-цифровых символов и подчеркиваний.Третья радиокнопка имеет знак% в имени ID, и я не уверен, что это хорошая практика.IE может бросить припадки, когда увидит это.

PS: для ясности (и стандартов) вы можете удалить пробелы вокруг знака равенства в ваших атрибутах, а также добавить пробел перед самозакрывающейся косой чертой,Например, измените:

<input type="radio" name="NotificationStatus" id="statusA" value = "A" checked = "checked"/>

на

<input type="radio" name="NotificationStatus" id="statusA" value="A" checked="checked" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...