Php 为什么';jQuery脚本是否连接到wordpress插件中的按钮?
我正在尝试在我的小部件管理页面中创建媒体上传程序。 我有3个文件:Php 为什么';jQuery脚本是否连接到wordpress插件中的按钮?,php,wordpress,Php,Wordpress,我正在尝试在我的小部件管理页面中创建媒体上传程序。 我有3个文件: foo_widget_class.php (which holds my upload button) fileuploader.admin.js (wich handles my button clicks) foo_widget.php (wich registers my widget and scripts) foo_widget_class.php: class Foo_Widget extends WP_W
foo_widget_class.php (which holds my upload button)
fileuploader.admin.js (wich handles my button clicks)
foo_widget.php (wich registers my widget and scripts)
foo_widget_class.php:
class Foo_Widget extends WP_Widget {
// a lot of code that works
public function form( $instance ) {
<input
id="upload-button3"
class="button buttons-secondary"
type="button"
value="Upload button">
//rest of the class
foo_widget.php:
/*
Plugin Name: Foo widget
Plugin URI: http://www.foo.nl
Description: This is a food widget
Version: 1.0
Author: Jeffrey Rocks
Author URI: http://www.jeffrey.com
Licence: none
*/
function enqueue_media_uploader()
{
wp_register_script('mediauploaderScript', plugins_url().'/foo_widget/js/fileuploader.admin.js', array('jquery'),'1.0.0','all');
// at the end of the wp_registerscript instead of 'all' i also tried
// false and true. Both did nothing.
wp_enqueue_script('mediauploaderScript');
wp_enqueue_media();
}
include(plugin_dir_path(__FILE__).'foo_widget_class.php');
// register Foo_Widget widget
function register_foo_widget() {
register_widget( 'Foo_Widget' );
}
add_action( 'widgets_init', 'register_foo_widget' );
add_action("admin_enqueue_scripts", "enqueue_media_uploader");
?>
JS加载了,但我按下按钮,什么也没发生。控制台也不会输出任何错误。有人知道这是为什么吗
更新:
window.onload = function(){
//var mediaUploader;
document.getElementById("upload-button3").onclick = function() {
alert( "Handler for .click() called." );
};
alert(document.getElementById("upload-button3"));
我尝试了javascript而不是jQuery。警报会触发,但按钮不起作用。警报说:
[object HTMLInputElement]
您正在将无效参数传递给
wp\u register\u script()
,看起来您复制并粘贴了wp\u register\u style()版本,但没有正确更新它。它应该如下所示,并且$in_footer设置为true
wp_register_script('mediauploaderScript', plugins_url().'/foo_widget/js/fileuploader.admin.js', array('jquery'),'1.0.0',true);
你确定jquery已排队?您的注册表行中有一个依赖项,但您确定它包含在内吗?在控制台中键入jQuery并点击enter以确保它在那里。您也可以尝试
jQuery(document).on('click','#upload-button3',function(){
-由于我们不确定加载后是否对dom进行了操作,请接受答案,以便其他人知道问题已解决,这将提高您的代表性。我尝试了true和false设置。两者都没有给出任何结果。请更新问题中的代码,然后使用您所做的更改@user2322791。
wp_register_script('mediauploaderScript', plugins_url().'/foo_widget/js/fileuploader.admin.js', array('jquery'),'1.0.0',true);