jQuery vs. Scriptaculous Konflikt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jQuery vs. Scriptaculous Konflikt

    Hi allerseits,
    habe folgendes Problem:
    bei einem Projekt soll jQuery und Scriptaculous eingesetzt werden.
    jQuery wird nach anleitung im noConflictMode eingebunden.
    Der IE8 ignoriert aber die jQuery Function .width(value) bzw. .height(value)
    siehe Beispiel:
    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

    <
    html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <
    head>
        <
    meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <
    title>jQuery vsScriptaculous</title>
        <
    meta name="robots" content="noindex, nofollow"

          <!-- 
    JavaScript -->
        <
    script type="text/javascript" src="../js/scriptaculous-js-1.8.3/lib/prototype.js"></script>
        <
    script type="text/javascript" src="../js/scriptaculous-js-1.8.3/src/scriptaculous.js"></script>
        <
    script type="text/javascript" src="../js/jquery-1.4.min.js"></script>
        <
    script>
         
    jQ jQuery.noConflict();
         
    jQ(document).ready(function(){
             
    jQ("#test").click(function(){jQ("#stretchTest").width50 );});
         });
    </
    script>
      </
    head>
    <
    body>
     <
    div id="test" style="width:100px; height:100px; background:green;">Klick me</div>
     <
    div id="stretchTest" style="width:300px; height:200px; background:red;">xx</div>
    </
    body>
    </
    html
    Im IE7 funktioniert das Beispiel.
    Hat einer ne Idee?
    Was mich auch wundert:
    finde bei google nix zum Thema scriptaculous jquery conflict width() ie (ausser wie man mit noConflict arbeitet)
    THX in Advance
    Zuletzt geändert von mcmurphy; 17.08.2010, 13:58.
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    Zitat von mcmurphy Beitrag anzeigen
    bei einem Projekt soll jQuery und Scriptaculous eingesetzt werden.
    Na das nenn ich doch mal error by design - nicht nur ein Monster, sondern gleich zwei ...

    Der IE8 ignoriert aber die jQuery Function .width(value) bzw. .height(value)
    „ignoriert“ analog „funzt nich“ == unbrauchbar als Problembeschreibung.

    Wie sahen denn deine bisherigen Versuche aus, das Problem zu analysieren, und was haben sie ergeben?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      THX Wahsaga

      Zu eins:
      gebe ich dir Recht - ist nicht auf meinem Mist gewachsen - aber ich soll den Stall ausräumen ;-)

      Zu zwei
      ignoriert im sinne von: es passiert gar nichts, auch keine Fehlermeldung.
      Auch
      try{
      jQ = jQuery.noConflict();
      jQ(document).ready(function(){
      jQ("#test").click(function(){jQ("#stretchTest").width( 50 );});
      });
      }catch(e){alert(e);}
      gibt keine Fehlermeldung.

      In IE7, Safari 4, FF 3.5 wird das stretchTest div bei einem Klick auf #Test 50px in der Breite gesetzt

      Ups, hatte beim IE8 Entwickler Tools übersehen:
      jQ("#test").click(function(){jQ("#stretchTest").width( 50 );});
      Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
      Zuletzt geändert von mcmurphy; 17.08.2010, 14:39.
      "I don't want to belong to any club that would accept me as a member."

      Groucho Marx

      Kommentar


      • #4
        Zitat von mcmurphy Beitrag anzeigen
        Ups, hatte beim IE8 Entwickler Tools übersehen:
        jQ("#test").click(function(){jQ("#stretchTest").width( 50 );});
        Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
        Na dann nimm das Statement mal auseinander, und teste die einzelnen Bestandteile nacheinander - um zu sehen, wo es hakt.

        Code:
        jQ("#test")
        jQ("#test").click(function(){ alert('xyz'); });
        ...
        Mal mittels typeof zu schauen, ob's die verwendeten Objekte gibt, wäre auch noch ein Weg mehr Klarheit zu erhalten.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hi,
          alert(typeof(jQ("#stretchTest")));
          sagt mir in IE (7 und 8) sowie FF "Object"

          var width = 20;
          jQ("#test").click(function(){jQ("#stretchTest").width( 50 );});

          wird in IE 8 nicht ausgeführt - da kommt die Meldung "Das Objekt unterstützt diese Eigenschaft oder Methode nicht."

          Als Work Around habe ich jetzt das gemacht:
          var width = 20;
          jQ("#test").click(function(){jQ("#stretchTest").css({'width': width+'px'});});

          das funktioniert auch im IE 8

          Wie gesagt, das Problem tritt nur im IE8 auf wenn prototype.js eingebunden wird.

          @Wahsaga: meinst du ich sollte das als Bug bei jQuery posten?
          Du hast ja recht das der Mix von jQuery und Prototype einem Ärger einbringt, aber in der Regel funktioniert jQuery.noconflict() ja...
          "I don't want to belong to any club that would accept me as a member."

          Groucho Marx

          Kommentar

          Lädt...
          X