2010-12-30 3 views
0

Ich retriving diesen Inhalt von AjaxLive-Klick-Ereignis eines Bildes wird nicht in IE6 unterstützt

<div id="content"> 
click on image to close<img id="img_id"> 
</div> 

Code jQuery div schließen:

$("#img_id").live('click',function(){ 
    $("#content").slideUp('fast'); 
}); 

Sobald ich auf das Bild klicken div schließt. Aber im IE6 passiert nichts. Ich weiß nicht, warum IE6 nicht Live-Click-Ereignis oder wenn das Problem mit Image-ID ist.

Sobald das Bild geklickt wurde (Live-Klick-Ereignis wurde in IE6 nicht ausgelöst) Was wäre der Grund?

+2

Welche Version von jQuery und welchen 'DOCTYPE' verwenden Sie? –

+0

Ich bin froh, meine Antwort beantwortet Ihre Frage, aber aus Neugier, was war es? # 1? # 2? Etwas in dem Beispiel, das bei einem anderen Problem mit dem von Ihnen verwendeten Code geholfen hat? Nur neugierig. –

Antwort

0

Es funktioniert in einfachen Tests (siehe unten), sogar mit IE6, also schauen wir uns etwas Bestimmtes zu Ihrer Seite an.

Gedanken:

1) IE und insbesondere IE6, hat mixing together namespaces Fragen, haben Sie etwas auf der Seite mit dem Namen „Inhalt“ oder „img_id“ andere als die oben? Irgendwelche globalen Variablen? Das Attribut name in einem Feld?

2) Sind Sie absolut sicher, dass der Code live Handler auf IE ausgeführt wird? IE hat Probleme mit einigen Syntax-Eigenheiten, die einige andere Browser nicht haben (zum Beispiel nachgestellte Kommas in Objektliteralen), so dass Sie sicher sein müssen, dass das Skript korrekt analysiert wird.


Einfacher Test, ohne DOCTYPE (das scheint keinen Unterschied der einen oder der anderen zu machen), kein HTML5 Shim, etc .:

HTML:

<html> 
<head> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<meta charset=utf-8 /> 
<title>Test Page</title> 
</head> 
<body> 
    <div id='container'></div> 
</body> 
</html>​ 

JavaScript:

jQuery(function($) { 

    display("Setting live handler"); 
    $("#img_id").live('click',function(){ 
    $("#content").slideUp('fast'); 
    }); 

    display("Loading content from http://jsbin.com/ihuki3..."); 
    $("#container").load("http://jsbin.com/ihuki3", function(xhr, statusText) { 
    display("Done loading, status = " + statusText); 
    }); 

    function display(msg) { 
    $("<p/>").html(msg).appendTo(document.body); 
    } 
});​ 

Live copy * Live copy with DOCTYPE

0

Es funktioniert für mich. Ich nehme an, dein Bild hat src eingestellt?