Почему я не могу привязать к событию click из класса css в IE 7-8? - PullRequest
0 голосов
/ 23 ноября 2011

Почему этот JavaScript не работает в Internet Explorer 7-8?Все, что я пытаюсь сделать, это подключить событие «click» для нескольких DIV, используя jQuery для выбора DIV по имени класса.

Это работает в Firefox, Chrome, Safari.В IE он будет работать только в режиме браузера: IE 9 / Режим документа: стандарты IE 9 ". Не удается заставить его работать в IE 7 или 8.

<!DOCTYPE html>
<head>
    <title>IE Click Target Test</title>
</head>
<body>

    <div class="ClickTarget">Button 1</div>
    <div class="ClickTarget">Button 2</div>

    <!-- load jQuery 1.6.4 from CDN -->
    <script type="application/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>

    <script type="application/javascript">
        // This works fine in all browsers except IE pre-9. 
        $(document).ready(function () {

          $(".ClickTarget").click(function () {
              alert("If you can see me, it worked!");
          });

        });
    </script>
</body>
</html>
  • Нормальные заявления об отказе от ответственности:Я не хотел бы использовать jQuery для этого примера, но он иллюстрирует проблему, с которой я сталкиваюсь, с большим решением, использующим jQuery 1.6.4. IE часто бывает странным, мне приходилось сталкиваться с ним много лет, но этоlife.

По какой-то причине, может быть, надвигающийся отпуск, я что-то упускаю. Есть идеи, почему я не могу зарегистрировать клик в IE?

Ответы [ 4 ]

4 голосов
/ 23 ноября 2011

Я думаю, что это type="application/javascript" в ваших <script> тегах -

«text / javascript» - единственный тип, поддерживаемый всеми тремя браузеры. Однако на самом деле вам не нужно указывать тип. Тип Атрибут тега скрипта по умолчанию будет «text / javascript», если он не указано иное. Как это повлияет на проверку, я не конечно. Но разве это так важно?

С - Почему IE8 не распознает type = "application / javascript" в теге скрипта?

2 голосов
/ 23 ноября 2011

Попробуйте изменить атрибут типа тега script на text/javascript, он должен нормально работать во всех браузерах.

1 голос
/ 23 ноября 2011

Как сказал Шанкар первоначально, это ваш тип сценария, а не "text / javascript"

Я попробовал этот JSFiddle в IE8 и отлично работал для меня.

http://jsfiddle.net/Nna2T/

0 голосов
/ 23 ноября 2011

Это не ответ, но комментарии не могут отформатировать код, поэтому просто FYI ...

Это:

$(document).ready(function () { 
    ...
});

Может быть сокращено до:

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