2009-02-20 4 views
0

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

...<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, я получаю предупреждение, в котором говорится «Hello!». Почему это не работает в IE7/8?

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

ответ

7

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

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

function DoHello() 
{ 
    $("div#main a") 
     .text("Click here!") 
     .mouseup(function(){ 
      alert('Hello!'); 
     }); 
} 
5

Не используйте события expando, используйте jQuery!

$("div#main a").mouseup(function(){ alert('Hello!') }); 
3

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

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

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

1

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

function DoHello(){ 
$("div#main a").bind("mouseup", function(e){ 
    alert("Hello!"); 
}); 
} 
Смежные вопросы