簡體   English   中英

jQuery.each未在函數中運行

[英]jQuery.each not running in function

我正在一個項目中,其中某些表單元素依賴於另一個表單輸入來具有特定值,或者可能顯示多個具有特定值的元素,然后再顯示該輸入。

想法是,在生成表單時,每個輸入的包裝div都有一個data-depends-on屬性,該屬性具有一個逗號分隔的列表,該列表取決於要顯示的每個字段以及期望的每個字段的值被顯示。

我幾乎要降低前端/ JavaScript代碼的工作量,但是由於某種原因,即使我已經確認要遍歷的數組,我的JavaScript函數中的jQuery.each()循環也沒有運行一種。 有內容,並且b。 該功能實際上是在預期的時候被調用的。

首先,我有實際的函數調用(每當依賴項輸入更改時都會調用):

checkShowField(keyed_depends, current_vals, targeted_element);

然后函數checkShowField()定義:

function checkShowField(keyed_dependencies, current_values, targeted_element)
{
    var hide_field = null;
    jQuery.each(keyed_dependencies, function(key, value)
    {
        if (value != current_values[key] && hide_field == null)
            hide_field = false;
    });

    if (hide_field == null)
        $(targeted_element).slideDown();
    else
        $(targeted_element).slideUp();
}

另外請注意,函數調用放置在正確的位置,並且實際上已經被調用。 我剛剛在此處添加了代碼,以向每個人展示如何調用該函數的上下文。 函數調用包裝在$(document).ready(function(){...}中。

如您所見,在函數“ checkShowField”中,我有一個jQuery.each循環,該循環應通過keyed_dependencies數組進行循環,但是實際上,該循環甚至沒有運行一次。 有什么想法嗎?

看起來keyed_dependencies並不是您真正想的那樣。 嘗試添加debugger; .each行之前的語句,也可能在函數中。 然后使用檢查器/調試器檢查變量中的數據。

您可以檢查參數列表中的keyed_dependencies是否具有屬性length 如果是這樣,jQuery假定一個數組,並且可能實際上無法運行您的循環。

如果是這種情況,請嘗試使用香草JS:

for (var key in keyed_dependencies) {...}

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM