Laden eines jQuery-Dialogs in ein Plugin.
Enqueue bei Admin Enqueue Scripts
function enqueue_settings_scripts_styles($page) {
wp_enqueue_script ( 'my-plugin', 'path/to/the.js', array( 'jquery-ui-dialog' ));
}
add_action('admin_enqueue_scripts', enqueue_settings_scripts_styles');
Das HTML
<a style="cursor:pointer" class="cool-button">Click Me</a>
Skript (the.js
)
(function($) {
console.log( "ready!" ); // this happens
var detailsButton = $('a.cool-button');
console.log(detailsButton.click);
// this prints out to console:
// function (a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}
detailsButton.click(function(e) {
alert('i happened'); // never happens
e.preventDefault();
});
})(jQuery);
Ich habe über eine Stunde damit verbracht, Fehler zu beheben. Was vermisse ich?
Wenn Sie ein Skript in die Warteschlange stellen, sollten Sie die Abhängigkeiten Ihres Skripts angeben. In Ihrem Fall ist es jQuery.
Stellen Sie Ihr Skript folgendermaßen in die Warteschlange:
wp_enqueue_script ( 'my-plugin', 'path/to/the.js', array( 'jquery' ) );
Sie können auch sicherstellen, dass Ihr Skript IS in die Fußzeile geladen wird, indem Sie das letzte Argument auf true setzen:
wp_enqueue_script ( 'my-plugin', 'path/to/the.js', array( 'jquery' ), null, true);
Wobei null
die Versionsnummer ist und true
angibt, dass das Skript in die Fußzeile geladen werden muss.