jQuery单击事件在Wordpress页面中不起作用
我已经花了几个小时试图弄清楚为什么我的jquery代码在Wordpress中作为页面添加时不起作用 作为一个独立页面,一切正常,但当转换为Wordpress页面时,jQuery点击事件不再触发 当前,我的jQuery代码如下所示: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(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