我已经尝试了几个小时来弄清楚为什么我的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也应该是noConflict模式下的jQuery.ajax。
答案 0 :(得分:5)
问题似乎是不那么直接然后代码中的错误。其中一个Wordpress插件强制大多数.js文件在页脚中加载而不是在标题中加载,据说可以改善加载时间。
问题是我在头文件中加载了我的.js文件导致我的javascript代码在加载jquery库之前执行,导致错误。
解决方法是确保我的.js文件已加载到页脚中,这可以通过将add_action('wp_head', '<js method>');
更改为add_action('wp_footer', '<js method>');
来实现。代码中也有一个小错误。当jquery处于无混乱模式时,$.ajax
应为jQuery.ajax
。
答案 1 :(得分:0)