Hallo @tommy84 und willkommen im Forum,
WordPress verwendet bereits selber jQuery-UI-Draggable und es ist nicht ratsam, dass jedes Plugin seine eigene Version hinzufügt. Statt dessen kannst du in der functions.php
deines Themes einfach angeben, dass du jQuery-UI-Draggable nutzen möchtest. Deine jQuery-Funktion kannst du dann in eine eigene JavaScript-Datei in Theme setzen und ebenfalls einbinden.
function my_draggable_js() {
wp_enqueue_script( 'jquery-ui-draggable' );
wp_enqueue_script( 'draggable', plugin_dir_url( __FILE__ ) . 'js/draggable.js', array( 'jquery-ui-draggable' ), false, false );
}
add_action( 'wp_enqueue_scripts', 'my_draggable_js' );
und in der JavaScript-Datei js/draggable.js
:
jQuery( document ).ready( function( $ ) {
// $() will work as an alias for jQuery() inside of this function
$( '#draggable' ).draggable();
} );
Hallo,
danke für die schnelle Antwort. Kam leider jetzt erst zur Umsetzung.
Bei mir funktionieren meine Scripte erst, wenn ich dieses per plugin Installiere. Bzw. die draggable.js
per Plugin hochlade.
Stellt dies ein Problem dar oder ist das so auch in Ordnung? ich nutze das Theme twentyseventeen für meine Tests.
Viele Grüße
Tommy
Bei mir funktionieren meine Scripte erst, wenn ich dieses per plugin Installiere.
Welches Plugin verwendet du dafür?
Welche Skripte meinst du?
Bzw. die draggable.js per Plugin hochlade.
Hast du dich an meine Anleitung gehalten?
Stellt dies ein Problem dar …
Ja.
… oder ist das so auch in Ordnung?
Nein. Wenn jedes Plugin seine eigenen Libraries mitbringt, erzeugst du damit Konflikte.
Hi,
Ich hoffe das ich mich korreckt an die ANleitung healten habe… Ich gehe wie folgt vor:
in der functions.php
des Themes:
function my_draggable_js() {
wp_enqueue_script( 'jquery-ui-draggable' );
wp_enqueue_script( 'draggable', plugin_dir_url( __FILE__ ) . 'js/draggable.js', array( 'jquery-ui-draggable' ), false, false );
}
add_action( 'wp_enqueue_scripts', 'my_draggable_js' );
Dann lege ich eine neue Datei in dem Themeordner an:
js/draggable.js
jQuery( document ).ready( function( $ ) {
// $() will work as an alias for jQuery() inside of this function
$( '#draggable' ).draggable();
} );
Im Artikel den ich teste steht:
<div></div>
<div id="draggable" class="ui-widget-content">
<p>Drag me around</p>
</div>
So funktioniert es leider nicht. In der Konsole sehe ich auch, dass das Skript nicht geladen werden kann.
Ich habe mal ein Plugin nach einem Beispiel zum testen erstellt. Der Inhalt ist:
custom-functions.php
function load_my_custom_scripts_31012017()
{
wp_enqueue_script( 'my_custom_js', plugins_url( 'custom.js', __FILE__ ), array('jquery') );
}
add_action('wp_enqueue_scripts', 'load_my_custom_scripts_31012017');
custom.js
jQuery(document).ready(function($) {
alert("Aufruf Test");
$( "#draggable" ).draggable();
});
Nach dem ich dieses aktiviert habe funktioniert die Funktion.
Danke für die Zeit.
Tommy
-
Diese Antwort wurde geändert vor 5 Jahren, 9 Monaten von tommy84.
In dem Code fürs Theme ist ein Fehler. Statt
wp_enqueue_script( 'draggable', plugin_dir_url( __FILE__ ) . 'js/draggable.js', array( 'jquery-ui-draggable' ), false, false );
muss es bei Themes
wp_enqueue_script( 'draggable', get_template_directory_uri() . '/js/draggable.js', array( 'jquery-ui-draggable' ), false, false );
heißen. Dann klappt das auch. Sorry für die Verwirrung.