в панели администратора, когда я добавляю виджет на страницу, javascript не выполняется. Вот код моего плагина:
class Mosaic extends WP_Widget {
// class constructor
public function __construct() {
$widget_ops = array(
'classname' => 'Mosaic',
'description' => 'Widget provides mosaic jquery.',
);
parent::__construct( 'mosaic', 'mosaic', $widget_ops );
}
// output the widget content on the front-end
public function widget( $args, $instance ) {
echo $args['before_widget'];
echo $args['after_widget'];
}
// output the option form field in admin Widgets screen
public function form( $instance ) {
wp_enqueue_media();
?>
<ul id = "sortable123">
<li class = "ui-state-default">test1</li>
<li class = "ui-state-default">test12</li>
<li class = "ui-state-default">test122</li>
</ul>
<?php
}
// save options
public function update( $new_instance, $old_instance ) {}
}
add_action( 'widgets_init', function(){register_widget( 'Mosaic' );});
function my_enqueue() {
wp_enqueue_script( 'mosaic-js', 'mymosaic.js' );
}
add_action( 'admin_enqueue_scripts', 'my_enqueue' );
wp_enqueue_script( 'mosaic-js', '/wp-content/plugins/mosaic/mymosaic.js', array( 'jquery' ), '0.0.1', true );
а javascript простой, основанный на JQuery:
jQuery( document ).ready( function( $ ) {
$('.ui-state-default').click(function() {
alert( "Handler click called." );
});
});
Если я добавлю его в функцию предупреждения javascript, он будет работать нормально. Но все остальное, например, щелчок не работает, не могли бы вы мне помочь с проблемой?
оно работает! Никогда не слышал о делегированном обработчике событий ...
Рад, что ты починил. Я связался с дубликатом, в котором есть дополнительная информация о них.

Добавляются ли элементы после загрузки DOM? Если да, используйте делегированный обработчик событий:
$(document).on('click', '.ui-state-default', function() { ....