Konflikt : Aktuelle JQuery Version (1.8.3) und Wysiwyg
am 21.11.2012 - 03:42 Uhr in
Hi Leute,
ich habe bei der Entwicklung eines Prototypen mit der aktuellsten Jquery Version, die über googlecode verfügbar ist gearbeitet (1.8.3). Das funktioniert soweit auch alles super. Es verhindert aber, dass egal welchen Wysiwyg Editor ich über selbiges Modul einbinde, dieser nicht im Frontend angezeigt wird, weil dort ja mein Theme benutzt wird indem ich meine JQuery Version nach $scripts einbinde !
Ich muss unbedingt diese Version benutzen weil sonst mein eigenes JS nicht funktioniert. Ich habe alles versucht. Ich habe jquery update und jquery Multi modul ausprobiert, beides erwirkt nicht was ich will. Schmeiß ich die Jquery Version raus, funktioniert der Editor, aber nicht meine Funktionen. Stelle ich das Einbinden der aktuellen jquery Version vor $scripts, dann funktioniert der Editor ebenfalls, aber wieder mein eigener Code nicht. Ich habe es auch mit diesem noConflict Mode versucht - keine brauchbaren Resultate. Dann habe ich sätmliche Editoren ausprobiert, die ich über Wysiwys benutzen kann - kein Ergebnis.
Außerdem habe ich auch noch verschiedene Jquery Versionen ausprobiert um herauszufinden, ob es eine Version gibt, die beides ermöglicht. Da ist einfach NICHTS zu machen.
Was soll ich denn jetzt noch machen?
- Anmelden oder Registrieren um Kommentare zu schreiben
Da Drupal eine Abhängigkeit
am 21.11.2012 - 08:40 Uhr
Da Drupal eine Abhängigkeit zu jQuery hat wirst Du wohl die höchst mögliche Version einsetzen können die das jQuery Update Modul bereit stellt. Ich denke Du wirst Dein Script entsprechend anpassen müssen, damit es auf einer vorherigen Version läuft.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Sense schriebDa Drupal eine
am 21.11.2012 - 09:16 Uhr
Da Drupal eine Abhängigkeit zu jQuery hat wirst Du wohl die höchst mögliche Version einsetzen können die das jQuery Update Modul bereit stellt. Ich denke Du wirst Dein Script entsprechend anpassen müssen, damit es auf einer vorherigen Version läuft.
Verstehe nicht, warum da bei der Drupal entwicklung keine Rücksicht drauf genommen wird. Wusste gar nicht, dass es da sooo markante Unterschiede gibt, denn ich benutze keine besonders ausgefallenen Funktionen. Deswegen verstehe ich auch nicht, dass es nicht mit einer alten JQuery Version funktioniert (hänge den mal an, sind nur wenige Zeilen, vielleicht kann da ja jemand was machen). Kann ich nicht die Version die vom Drupal Kern benutzt wird ersetzen in irgendeiner Weise? Ich meine ein neues JQuery kann doch im Zweifelsfall auch alles, was ein altes konnte, aber umgekehrt eben nicht.
//Bei Mouseover
$("#login").bind('mouseover mouseenter',function(){
$("#logo").stop().delay(500)
.animate({top:'-44px'},
{queue:false, duration:600, easing: 'swing'})
$("#login").stop()
.animate({top:'89px'},
{queue:false, duration:600, easing: 'easeOutBounce'})
});
//Bei Mouseout
$("#login").bind('mouseout mouseleave',function(){
$("#logo").stop().animate({top:'6px'},
{queue:false, duration:600, easing: 'easeOutBounce'})
$("#login").stop().animate({top:'40px'},
{queue:false, duration:600, easing: 'swing'})
});
Naja ganz so einfach ist es
am 21.11.2012 - 09:21 Uhr
Naja ganz so einfach ist es nicht. Zur Abhängigkeit von Drupal und jQuery existiert eine Issue wo entsprechend diskutiert wird: http://drupal.org/node/1541860
Wirft der JS Code denn irgendeinen Fehler. Könnte vielleicht an den easing Methoden liegen, die separat eingebunden werden müssen. Welche Javascript Dateien hattest Du denn vorher manuell eingebunden?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Also die easing - methoden
am 21.11.2012 - 09:27 Uhr
Also die easing - methoden binde ich ja auch weiterhin manuell ein :( das einzige was ich rausgeschmissen habe ist die aktuelle jquery version.
Der "queue" Parameter könnte
am 21.11.2012 - 09:34 Uhr
Der "queue" Parameter könnte das Problem sein. Dieser wurde erst in 1.7 hinzugefügt, siehe Docs: http://api.jquery.com/animate/
Ich würde mir die Docs mal genau durchlesen und die ganzen Parameter überprüfen.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Toll :D Aber dafür gibts ja
am 21.11.2012 - 09:44 Uhr
Toll :D Aber dafür gibts ja keinen wirklichen Ersatz :D Deswegen ist das Ding ja entwickelt worden.
Musst Du dir wohl eine
am 21.11.2012 - 09:57 Uhr
Musst Du dir wohl eine Alternative ausdenken wie das "simuliert" bekommst.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Das klappt nicht ohne xD
am 21.11.2012 - 10:13 Uhr
Das klappt nicht ohne xD
queue als Bool-Wert (True
am 21.11.2012 - 10:33 Uhr
queue als Bool-Wert (True oder False) geht seit Version 1.0. Also wird es an etwas anderem liegen.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
im animate() aber nicht ^^
am 21.11.2012 - 10:35 Uhr
im animate() aber nicht ^^ zumindest laut doku !?
Zitat:version added:
am 21.11.2012 - 11:33 Uhr
version added: 1.0.
animate( properties, options )
propertiesA map of CSS properties that the animation will move toward.
optionsA map of additional options to pass to the method. Supported keys:
duration: A string or number determining how long the animation will run.
easing: A string indicating which easing function to use for the transition.
complete: A function to call once the animation is complete.
step: A function to be called after each step of the animation.
queue: A Boolean indicating whether to place the animation in the effects queue. If false, the animation will begin immediately. As of jQuery 1.7, the queue option can also accept a string, in which case the animation is added to the queue represented by that string.
specialEasing: A map of one or more of the CSS properties defined by the properties argument and their corresponding easing functions (added 1.4).
Seit 1.7 kann queue einen Stringwert erhalten. Nur das ist neu.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Jo, wer lesen kann ist klar
am 21.11.2012 - 11:37 Uhr
Jo, wer lesen kann ist klar im Vorteil, dann muss es wo anders dran liegen. Werden denn irgendwelche Fehler ausgegeben?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Achso stimmt ^^ false ist
am 21.11.2012 - 11:39 Uhr
Achso stimmt ^^ false ist natürlich kein string :D Verdammt. Dann weiß ich aber partout nicht woran es liegen soll. Mich nervt es, dass es diese Kompatibilitätsprobleme überhaupt gibt :( Hab das jetzt auch mal im JQuery und bei stackOverflow gepostet. Warum kann der Drupal Kern nicht auf eine aktuelle Version von JQuery geupdated werden? Die Frage ist dann allerdings ob das das Wysiwyg und das CKEditor Modul überhaupt mitmachen würden. Ich glaube ich versuche jetzt mal den CKEditor als eigenständiges Modul. Vielleicht bestehen die Probleme ja nicht mehr, wenn ich es nicht über das Wysiwyg Modul mache. Das ist ja im Prinzip nur sinnvoll, wenn man mehrere Wysiwygs benutzen will, oder?
Ich würde sicherlich nicht
am 21.11.2012 - 11:42 Uhr
Ich würde sicherlich nicht den Aufwand betreiben und dafür andere Module einsetzen, sondern eher nach dem Bug in deinem Code suchen. Dann sollte deutlich schneller gehen. Meine Frage hast Du nicht beantwortet.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Hm. Ich kenne mich nicht sooo
am 21.11.2012 - 11:45 Uhr
Hm. Ich kenne mich nicht sooo gut mit JS aus. Das ist noch so ein bisschen einarbeiten für mich als Azubi. Aber jetzt wo ihr es so sagt - da ist eine Meldung die eine wysiwyg klasse enthält, wenn ich mich nicht täusche !?
Sense schrieb Ich würde
am 21.11.2012 - 11:46 Uhr
Ich würde sicherlich nicht den Aufwand betreiben und dafür andere Module einsetzen, sondern eher nach dem Bug in deinem Code suchen. Dann sollte deutlich schneller gehen. Meine Frage hast Du nicht beantwortet.
Sorry, deine Antwort war noch nicht drin als ich schon am Tippen war :)
Fixed: Wie gesagt, in der
am 21.11.2012 - 12:25 Uhr
Fixed:
Wie gesagt, in der Fehlersuche bzgl. JS bin ich nicht routiniert, deshalb bin ich wirklich nicht drauf gekommen mit Firebug zu schauen. Aber mit der neuen Info konnte ich ja die Fehlermeldung googeln. Die Lösung war es im Modul die wysiwyg.js zu patchen und folgendes zu ersetzen:
-- $('.wysiwyg', context).once('wysiwyg', function() {
++ $('.wysiwyg:not(.processed)', context).addClass('processed').each(function() {
Jetzt beißen sich die zwei JQuery Versionen also doch nicht ^^ Danke