2016-11-29 41 views
1

我有一些問題,當我想添加自定義的jQuery代碼,影響形式。自定義jQuery不工作的Wordpress忍者表格插件

例如,當有人點擊一個輸入或單選按鈕時,要隱藏或顯示另一個輸入或元素。我試圖在單擊時獲得類似console.log('trigger');的結果或其他內容,但在dev中沒有任何結果。控制檯appeared.Also,我嘗試以下方法:

要與.on('click', function()...調用click事件或.trigger('click');調用事件,或更改事件change

從忍者文件中嵌入腳本表格或把它放在頁面內以body標籤的結局在footer.php

要更改的jQuery開幕聲明函數內部的工作是這樣的:(function($) {$(document).ready(function(){.....

我知道我可以嘗試另一種插件,我試過一個自定義jQuery的工作,但我真的很喜歡這一個,不知道爲什麼會這樣......

感謝

回答

0

我沒有足以發表評論或我會,但嘗試使用開發控制檯。輸入$('input').click(function(){console.log('test')}),如果點擊輸入時在控制檯中顯示「測試」,則我們可以從那裏開始。

+0

那麼,這種功能不會在開發者控制檯中工作,它會返回'undefined'。你至少在別處嘗試過嗎?讓我們說谷歌的搜索引擎頁面,你只有一個輸入。 –

+1

它不應該返回任何東西。它的作用是附加一個事件處理程序,以便在每次單擊輸入時將字符串'test'記錄到控制檯。 –

0

事件沒有被註冊,只是因爲你試圖綁定事件的元素在那個時刻還沒有存在(在文檔加載時)。忍者表單異步加載表單內容,因此您必須等到表單完全加載後再添加事件偵聽器。 這個工作對我來說:

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 
8

不知道,如果你需要這方面的幫助更多的,因爲它是已有一段時間,因爲你發佈你的問題,但是這可能幫助別人的未來。我有相同/類似的問題,無法在忍者窗體上運行JS/jQuery,並發現它是因爲忍者窗體異步加載它們的窗體。所以,當你的document.ready函數運行時,表單還不存在並且不能綁定。

忍者形式有可以如下用自己的事件就緒狀態:

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

謝謝。我花了太長時間試圖找到......在NF文檔中是否有某處? –

+1

對不起,我不確定它是否在文檔中,因爲他們的網站目前似乎處於關閉狀態。但是,我想我實際上在GitHub頁面上找到了它的參考:https://github.com/wpninjas/ninja-forms/issues/2436,然後在Google搜索了一個正在使用的'nfformReady'的例子。 – Matthew

+1

@JoelWorsham - NinjaForms網站現在似乎已經開始運行。但是,我搜索並搜索了他們的文檔和代碼,但似乎沒有任何有關nfFormReady事件的參考......因此,我必須從上面的Github頁面上的示例中獲得它。 – Matthew