jQuery + PHP + JavaScript + Wordpress:单击HTML按钮调用

时间:2015-09-18 17:55:15

标签: javascript php jquery ajax wordpress

好的,所以我已经在类似的问题上阅读了无数的尝试答案,但无论出于何种原因,他们都没有为我工作。我有一个WordPress网站,我试图制作一个需要jQuery的插件。

首先,我的wp-content / plugins / my-plugin / index.php页面:

    <?php
    add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' ); 

    function wpb_adding_scripts() {
    wp_enqueue_script('TestFile', plugins_url('/js/TestFile.js', __FILE__), array('jquery'),'1.1', false);
    }
    ...
function printButton(){
echo '<input type ="button" id="myButton" name="myButton" value="My Button"/>';
}

我在代码中大约打了十几次printButton,并且我检查了HTML以确保它按照书面形式吐出。如果用户点击了十几个按钮中的任何一个,我想要运行相同的jQuery调用。我还确保jquery本身在WordPress的头文件中排队,所以它肯定知道jQuery存在。当我执行Inspect Element视图时,控制台在单击时不会出错。

然后是我的TestFile.js文件:

jQuery(function() {
    jQuery('#myButton').click(function(e){
    alert("Button Clicked!");
    });
  });

我知道我应该可以使用&#39; $&#39;而不是jQuery&#39;,但无论出于什么原因,WordPress都是愚蠢的。所以从我读过的所有内容来看,这是非常简单的东西,每当我点击任何一个按钮时,我都会得到一个非常小的警报弹出窗口。可悲的是,当我点击时没有任何反应......

想法?非常感谢你的帮助!

3 个答案:

答案 0 :(得分:2)

不要将操作绑定到ID,将其绑定到类。

ID必须是元素唯一的。如果你有十几个按钮都有id='myButton',那么jQuery就不会正确绑定它们。

相反,绑定到类名称:

function printButton(){
    echo '<input type ="button" class="aButton" name="myButton" value="My Button"/>';
}

然后jQuery会读

jQuery(function() {
    jQuery('.myButton').click(function(e){
    alert("Button Clicked!");
    });
 });

答案 1 :(得分:0)

为班级使用相同的名称。考虑&#34; myButton&#34;成为jQuery函数中的所需名称,更改&#34; function printButton&#34;中的类。到:

function printButton(){
    echo '<input type ="button" class="myButton" name="myButton" value="My Button"/>';
}

答案 2 :(得分:-2)

  1. 您的ID应该是唯一的。
  2. 尝试使用jQuery(selector).on( ... );