自定义 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...
});