Проблема JavaScript / jQuery в Internet Explorer 7 - PullRequest
0 голосов
/ 20 февраля 2009

У меня есть простая HTML-страница, которая выглядит следующим образом:

...<div id="main">
    <a href="#">Click here!</a>
</div>...

У меня есть фрагмент jQuery JavaScript в заголовке, который выглядит следующим образом:

   <script type="text/javascript">
    $(document).ready(function() {
        DoHello();
    });

    function DoHello()
    {   
        $("div#main a").text("Click here!");
        $("div#main a").attr("onmouseup", "javascript:alert('Hello!');");
    }
</script>

Когда я нажимаю HTML-ссылку в FireFox, я получаю предупреждение «Здравствуйте!». Почему это не работает в IE7 / 8?

Когда я смотрю (динамически) сборку DOM в IE, я вижу, что «onmouseup» присутствует, но он никогда не вызывается Я попытался заменить «onmouseup» на «onclick» - та же проблема ...

Ответы [ 4 ]

7 голосов
/ 20 февраля 2009

Вы не должны использовать псевдопротокол JavaScript ни для чего.

Это должно работать:

function DoHello()
{   
    $("div#main a")
        .text("Click here!")
        .mouseup(function(){
             alert('Hello!');
        });
}
5 голосов
/ 20 февраля 2009

Не используйте события расширения, используйте jQuery!

$("div#main a").mouseup(function(){ alert('Hello!') });
3 голосов
/ 20 февраля 2009

вместо добавления события onmouseup, как это, почему бы вам просто не использовать метод jQuery так:

$("div#main a").mouseup(function() {
   alert("hello");
});

должно работать :) для получения дополнительной информации проверьте - http://docs.jquery.com/Events/mouseup

1 голос
/ 20 февраля 2009

Вы должны использовать функцию bind следующим образом:

function DoHello(){
$("div#main a").bind("mouseup", function(e){
    alert("Hello!");
});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...