自定义jQuery无法使用Wordpress Ninja Forms插件

时间:2016-11-29 21:00:33

标签: javascript jquery wordpress ninja-forms

当我想添加影响表单的自定义jQuery代码时,我遇到了一些问题。

例如,当有人点击输入或单选按钮时,要隐藏或显示另一个输入或元素。我试图在点击时获得console.log('trigger');之类的结果,或者在开发中没有其他内容。控制台出现了。另外,我尝试了以下方法:

使用click致电.on('click', function()...活动或使用.trigger('click');致电活动,或将活动更改为change

要将脚本嵌入来自忍者表单的文件中,或将其放在body

footer.php标记末尾的页面内

要将jQuery的开始声明更改为在以下函数内工作:(function($) {$(document).ready(function(){.....

我知道我可以尝试另一个插件,我尝试了一个,自定义jQuery可以工作,但我真的很喜欢这个,不知道为什么会这样...

由于

2 个答案:

答案 0 :(得分:26)

不确定您是否需要帮助,因为自您发布问题以来已经过了一段时间,但这可能在将来帮助其他人。我有相同/类似的问题,无法在Ninja Forms上运行JS / jQuery,并发现这是因为Ninja Forms异步加载它们的表单。因此,当您的document.ready函数运行时,表单尚不存在且无法绑定。

Ninja Forms有自己的事件就绪状态,可以按如下方式使用:

jQuery(document).on( 'nfFormReady', function( e, layoutView ) {
    // Your code goes here...
});

答案 1 :(得分:-1)

事件未被注册只是因为您尝试绑定事件的元素在当时尚未存在(在文档加载时)。 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