Prototype muss raus

thigle

Mitglied
Hallo.

Ich möchte prototype.js aus meinem Blog werfen. jQuery darf gerne bleiben. Problem - das Hide/View Verhalten ( man klicke das [x] auf der Seite) hängt mit 'prototype' zusammen. Ich fand im Netz dann folgenden Code, welcher den selben Effekt basierend auf JQuery erzielen soll:

Code:
<script type="text/javascript"> 
$(function() {
  $("#toggle_button").click(function () {
    $("#up").slideToggle("slow");
  });
  //hier weitere Inits...
} </script>

in head &

Code:
<a href="javascript:void();" onclick="toggle_button('up')">[x]</a>

an die Stelle, an welcher zuvor

Code:
<a
href="javascript:Effect.Combo('up', {duration: 0.3});" title="hide-view">[x]</a>

stand. Nur, es funktioniert nicht. Wer kann mir helfen?
 
Hi.

Ich würde es ja mal so versuchen:
HTML:
<a href="javascript:void();"  id="toggle_button">[x]</a>
Und schau in die Fehlerkonsole vom Browser!

Gruß
 
Hallo,

ich habe von JS keine Ahnung, ist das so korrekt geschlossen?

Code:
<script type="text/javascript"> 
$(function() {
  $("#toggle_button").click(function () {
    $("#up").slideToggle("slow");
});
}) 
</script>

Jedenfalls - habe 'onclick' durch 'id' ersetzt, tut sich leider immer noch nichts....

LG
Mart
 
Du hast doch prototype noch immer drin. Nimm es raus, dann kann der code erst funktionieren, weil prototype nicht mehr dazwischen funkt ($ ist shorthand für prototype und jquery)
 
Prototype ist jetzt raus, funktioniert aber immer noch nicht. Ausserdem wird eine Fehlermeldung in Zeile 69 angezeigt. Da befindet sich der Schnipsel

Code:
$(function() {

von

Code:
<script type="text/javascript"> 
$(function() {
  $("#toggle_button").click(function () {
    $("#up").slideToggle("slow");
});
}) 
</script>

*Seufz*

LG
M.
 
Hi.

Du rufst noch die noConflict Funktion von jquery in jquery.js auf. Deshalb ist die $ Funktion dann natürlich nicht definiert.

Gruß
 
Du rufst noch die noConflict Funktion von jquery in jquery.js auf. Deshalb ist die $ Funktion dann natürlich nicht definiert.

Und was muss ich da genau machen? Den Schnipsel
Code:
jQuery.noConflict();
im 'Fancybox-Abschnitt' entfernen? Oder steht in der jquery.js selbst irgendwo diese Funktion und muss sie dort entfernen? Wie geschrieben, ich habe im Grunde 0 JS-Wissen.

LG
Mart
 
Hi,

das hängt scheinbar mit der von Wordpress bereitgestellten Scriptdatei "jquery.js" zusammen.

In dieser heruntergebrochenen Testseite funktioniert's mit der aktuellen jquery-Version einwandfrei:
HTML:
<!DOCTYPE html>
<html>
<head>

<!-- WP-Script auskommentiert -->
<!--<script src="http://thigle.square7.ch/wp-includes/js/jquery/jquery.js?ver=1.3.2"></script>-->

<!-- Aktuelles jquery-Script eingebunden -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript"> 
$(function() {
  $("#toggle_button").click(function () {
    $("#up").slideToggle("slow");
});
}) 
</script>
</head>
<body>
	
<div id="hide"><a href="javascript:void();"  id="toggle_button">[x]</a> </div> <div id="up">bla blubb</div>

</body>
</html>


mfg Maik
 
Grüsse,

ich kann das leider nicht so einfach zu testen, da das Fancybox-Plugin jQuery lädt. Habe in der 'header.php' keinen direkten Einfluss (so dass ich mal die URL für die aktuelle jQuery Version eingebe und den Pfad gen Wordpress- jQuery mal auskommentiere), jedenfalls nicht dass ich wüsste. Aber ich habe mir die aktuelle (1.4.1) jQuery Version (jquery.js) runtergeladen und im Wordpress Ordner mit der alten Version ersetzt. Siehe hier. Leider tut sich nichts....

LG
Mart
 
Hi.

Man könnte ja - da nunmal der noConflict Modus schonmal aktiviert ist, einfach auch den conflictModus benutzen.

HTML:
<script type="text/javascript"> 
jQuery(document).ready((function() {
  $("#toggle_button").click(function () {
    $("#up").slideToggle("slow");
});
}) 
</script>
Gruß
 

Neue Beiträge

Zurück