.change () не будет работать в IE для тегов <select> - PullRequest
0 голосов
/ 10 августа 2010

У меня есть такой комбинированный список на моем сайте, и я хочу, чтобы он загружал некоторый контент, как только он был изменен пользователем.В каждом штате моей страны это просто, проверьте это: http://jsfiddle.net/tzvyX/

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

Ответы [ 3 ]

1 голос
/ 10 августа 2010

РЕДАКТИРОВАТЬ : Это также происходит от того же источника:

BMan : Чтобы заставить change () работать в IE, обходной путь$(element).change(function() { doChange(); }).attr("onchange", function() { doChange();});Помните, что функция doChange () не должна использовать $ (this).

Трудно сказать, что происходит, без некоторого примера кода, но вот пример с сайта jquery, который работает в IE.источник: http://api.jquery.com/change/

<html>
<head>
  <style>

  div { color:red; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
    <select name="sweets" multiple="multiple">
    <option>Chocolate</option>
    <option selected="selected">Candy</option>

    <option>Taffy</option>
    <option selected="selected">Caramel</option>
    <option>Fudge</option>
    <option>Cookie</option>

  </select>
  <div></div>
<script>
    $("select").change(function () {
          var str = "";
          $("select option:selected").each(function () {
                str += $(this).text() + " ";
              });
          $("div").text(str);
        })
        .change();
</script>

</body>
</html>
0 голосов
/ 10 августа 2010

хммм У меня были проблемы с изменениями в IE, но только с переключателями и onchange.Вот код, который я использую, который работает в IE.

$('#NaviDDL').change(function() {
    var id = $('#NaviDDL option:selected').val();
    if (id == 'default') return true;
    location.href=id;
});

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

$('#sctEstado').live('change', function() {
        $('.small-loading').show();
        $('.conteudo').load('onde_encontrar.representante.php?id='+$("#sctEstado option:selected").val());
    });​
0 голосов
/ 10 августа 2010

Да, это известная проблема.Вы должны следить за событием щелчка и вручную проверять, отличается ли это значение от предыдущего значения.

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