Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery单击事件在Wordpress页面中不起作用_Jquery_Wordpress - Fatal编程技术网

jQuery单击事件在Wordpress页面中不起作用

jQuery单击事件在Wordpress页面中不起作用,jquery,wordpress,Jquery,Wordpress,我已经花了几个小时试图弄清楚为什么我的jquery代码在Wordpress中作为页面添加时不起作用 作为一个独立页面,一切正常,但当转换为Wordpress页面时,jQuery点击事件不再触发 当前,我的jQuery代码如下所示: jQuery(document).ready(function() { jQuery('button#convert').click(function() { alert("test"); var text = jQuery('

我已经花了几个小时试图弄清楚为什么我的jquery代码在Wordpress中作为页面添加时不起作用

作为一个独立页面,一切正常,但当转换为Wordpress页面时,jQuery点击事件不再触发

当前,我的jQuery代码如下所示:

jQuery(document).ready(function() {
    jQuery('button#convert').click(function() {
        alert("test");
        var text = jQuery('textarea#textInput').val();
        var method = jQuery('select#methodOptions').val();

        if (text!='')
        {
            $.ajax({
                url: 'core/convert.php',
                type: 'POST',
                data: 'data=' + text + '&method='+ method,
                dataType: 'html',
                success: function( message) {
                    jQuery('textarea#textOutput').val(message);
                }
            });
        }
    });
});
我的按钮在html中看起来像这样

<button id="convert" class="convertbutton" type="button">Convert</button>
转换
此外,我还可以验证包含上述脚本的.js文件是否正确加载到头文件中,jquery库是否也正确加载。我错过什么了吗?提前谢谢

编辑:我发现了问题所在,Wordpress在页脚中加载jquery库,我在页眉中加载我的.js,这就是出现问题的原因,因为在调用任何脚本之前需要加载库,原因很明显

另外,在无冲突模式下,$.ajax应该是jQuery.ajax。

试试:

if (text != 'undefined')

有关AJAX示例,请参见

编辑:

在单击功能中,取出选择器前的“按钮”。(#转换,而不是按钮#转换)也请签出

确保将jquery包含在HTML主体中。如果可能,请包括小提琴

我过去也遇到过Jquery()的问题;按如下方式编写代码:

$(document).ready(function(){
// etc etc
$('#convert').click( //etcetc


问题似乎不是那么直截了当,而是代码中的错误。其中一个Wordpress插件强迫大多数.js文件在页脚中加载,而不是在页眉中加载,以缩短加载时间

问题是我在头文件中加载了.js文件,这导致在加载jquery库之前执行了javascript代码,导致了一个错误


解决方案是确保我的.js文件加载到页脚中,这可以通过更改
add_action('wp_head','')来实现
添加操作('wp\u footer','')。代码中也有一个小错误。当jquery处于无冲突模式时,
$。ajax
应该是
jquery。ajax

当您的事件要触发时是否引发任何错误(检查控制台)?错误:引用错误:jquery未定义源文件:…/scripts/functions.js行:1。jquery没有冲突。抛出相同的错误,但如果上面的代码不适用于noConflict,则为$。这是标题中的js代码,感谢控制台提醒PBurges,它确实有助于查明问题。没有问题,容易忘记,但通常是解决问题的最简单方法。如果您将您的解决方案作为答案发布,并接受它,这可能是最好的,只是为了让其他可能有类似问题的人明白。遗憾的是,即使是警报也不会弹出,因此问题发生在该行之前。这不是问题,将用问题的内容更新我的问题。这是我问题的解决方案。我通过wp_enqueue_脚本('frontend',plugins_url('/js/frontend.js',FILE),数组('jquery')和add_action('wp_enqueue_scripts')在我的Wordpress插件中加载javascript…为了让我的javascript在jquery之后加载,尽管使用了wp_enque,但要用wp_enqueue_脚本('frontend',plugins_url)替换第一个代码段('/js/frontend.js',FILE),数组('jquery'),false,true);最后一个'true'标志加载我的脚本最后一个你是efing最好的兄弟
$(document).ready(function(){
// etc etc
$('#convert').click( //etcetc