自定义 jQuery 不适用于 Wordpress Ninja Forms 插件
Custom jQuery not working on Wordpress Ninja Forms plugin
当我想添加影响表单的自定义 jQuery 代码时遇到了一些问题。
例如,当有人单击输入或单选按钮时,另一个输入或元素将被隐藏,或者 shown.I 试图在单击时获得类似 console.log('trigger');
的结果或其他但在开发中没有任何结果。 console appeared.Also,我尝试了以下方法:
用.on('click', function()...
调用click
事件或用.trigger('click');
调用事件,或将事件更改为change
将脚本嵌入 ninja 表单的文件中,或将其放入页面中 body
标记末尾的 footer.php
要更改 jQuery 的开始声明以在这样的函数内工作:(function($) {$(document).ready(function(){.....
我知道我可以尝试另一个插件,我试过一个,自定义 jQuery 可以,但我真的很喜欢这个,不知道为什么会这样......
谢谢
事件未注册仅仅是因为您尝试将事件绑定到的元素当时尚不存在(在文档加载时)。 Ninja 表单异步加载表单内容,因此您必须等到表单完全加载后再添加事件侦听器。
这对我有用:
var formExists = setInterval(function() {
if ($(".nf-form-cont").length) {
// Set your event listeners here, example:
$("#nf-field-1").click(function(e) {
console.log("click!");
}
clearInterval(formExists);
}
}, 100); // check every 100ms
不确定您是否需要更多帮助,因为您发布问题已经有一段时间了,但这可能会在将来帮助其他人。我遇到了无法在 Ninja Forms 上 运行 JS/jQuery 的 same/similar 问题,我发现这是因为 Ninja Forms 异步加载它们的表单。因此,当您的 document.ready 函数 运行s 时,表单尚不存在且无法绑定。
Ninja Forms 有自己的事件就绪状态,可以按如下方式使用:
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
// Your code goes here...
});
当我想添加影响表单的自定义 jQuery 代码时遇到了一些问题。
例如,当有人单击输入或单选按钮时,另一个输入或元素将被隐藏,或者 shown.I 试图在单击时获得类似 console.log('trigger');
的结果或其他但在开发中没有任何结果。 console appeared.Also,我尝试了以下方法:
用.on('click', function()...
调用click
事件或用.trigger('click');
调用事件,或将事件更改为change
将脚本嵌入 ninja 表单的文件中,或将其放入页面中 body
标记末尾的 footer.php
要更改 jQuery 的开始声明以在这样的函数内工作:(function($) {$(document).ready(function(){.....
我知道我可以尝试另一个插件,我试过一个,自定义 jQuery 可以,但我真的很喜欢这个,不知道为什么会这样......
谢谢
事件未注册仅仅是因为您尝试将事件绑定到的元素当时尚不存在(在文档加载时)。 Ninja 表单异步加载表单内容,因此您必须等到表单完全加载后再添加事件侦听器。 这对我有用:
var formExists = setInterval(function() {
if ($(".nf-form-cont").length) {
// Set your event listeners here, example:
$("#nf-field-1").click(function(e) {
console.log("click!");
}
clearInterval(formExists);
}
}, 100); // check every 100ms
不确定您是否需要更多帮助,因为您发布问题已经有一段时间了,但这可能会在将来帮助其他人。我遇到了无法在 Ninja Forms 上 运行 JS/jQuery 的 same/similar 问题,我发现这是因为 Ninja Forms 异步加载它们的表单。因此,当您的 document.ready 函数 运行s 时,表单尚不存在且无法绑定。
Ninja Forms 有自己的事件就绪状态,可以按如下方式使用:
jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
// Your code goes here...
});