this.eachはjqmウィジェットの関数ではありません

セルゲイ・ノメロフスキー

jqmウィジェットに問題があります。私がそれをするとき$("div[id=leftSideList]").leftlist('refresh')、それはうまくいきますしかし、私がこのような解釈で以下のコードをラップすると

function _list (key) {
            switch (key) {
                case 'leftlist':
                    return $("div[id=leftSideList]").leftlist;
                case 'rightlist':
                    return $("div[id=leftSideList]").rightlist;
            }
        }

を使用しますit _list('leftlist')('refresh')そのリターンミーエラーUncaughtTypeError:this.eachは関数ではありません

ロリー・マクロサン

問題は、返された関数(leftlistまたはrightlist)がスコープを失ったためです。this関数内でdiv[id="leftSideList"]要素を参照しなくなったため、エラーが発生しました。

を使用してこれを修正できますが$.proxy、これは非常に醜く、実稼働環境で実際に実行可能なソリューションではありません。

function _list(key) {
  switch (key) {
    case 'leftlist':
      return $.proxy($("div[id=leftSideList]").leftlist, $("div[id=leftSideList]"));
    case 'rightlist':
      return $.proxy($("div[id=leftSideList]").rightlist, $("div[id=leftSideList]"));
  }
}

実例-leftlist()のソースを指定しなかったため、これは組み込みのjQueryメソッドを使用していることに注意してくださいrightlist()

はるかに優れた解決策は、この完全に不要な抽象化を完全に回避することです。選択した要素の一貫性を維持する以外に、何のメリットもありません。

function _list(key, action) {
  return $("div[id=leftSideList]")[key](action);
}

_list('leftlist', 'refresh')

最後に、使用div[id=leftSideList]は冗長で時間がかかることに注意してください#leftSideList代わりに使用できます属性セレクターを使用する唯一の理由は、同じid属性を持つ複数の要素がある場合です。これは無効であり、できるだけ早く修正する必要がある問題です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ノックアウト検索の問題オブジェクト#<Object>のプロパティ 'model'は関数ではありません

分類Dev

Uncaught TypeError:2つのウィジェットが使用されている場合、e.widget.extendはSugarCRMの関数ではありません

分類Dev

qmlからc ++メソッドを呼び出せません:「オブジェクトのプロパティは関数ではありません」

分類Dev

戻り値の型はウィジェットではありません:SetStateの問題

分類Dev

オブジェクト#<Object>のプロパティ '$'は_.extend._ensureElementの関数ではありません

分類Dev

.findはcheerioオブジェクトの関数ではありません

分類Dev

setはfirebaseRefオブジェクトの関数ではありません

分類Dev

オブジェクト#<HTMLFormElement>のプロパティ 'submit'は関数ではありません

分類Dev

オブジェクトのプロパティは関数ではありません

分類Dev

TypeError:オブジェクト#<ServerResponse>のプロパティ 'locals'は関数ではありません

分類Dev

「この関数の戻り値の型は「ウィジェット」ですが、returnステートメントで終わりません。」

分類Dev

Odoo10 Javascriptウィジェットアクションが機能しない:ClientWidgetは関数ではありません

分類Dev

未定義のangularjsプッシュオブジェクトは関数ではありません

分類Dev

Uncaught TypeError:オブジェクトはGoogleマップの関数ではありません

分類Dev

MaterialLocalizationsが見つかりません-MyAppウィジェットでは、Localizationsウィジェットの祖先がMaterialLocalizationsを提供する必要があります

分類Dev

この関数の戻り値の型は「ウィジェット」ですが、returnステートメントで終了しません

分類Dev

前後のフィッティング関数でのLMERConvenienceFunctionsエラー:モデルがmerオブジェクトではありません

分類Dev

JS:Uncaught TypeError:オブジェクト[オブジェクトオブジェクト]のプロパティ '$'は関数ではありません

分類Dev

TypeError:オブジェクト[オブジェクトオブジェクト]のプロパティxxxは関数ではありません

分類Dev

Tkinterウィジェットの色は変わりません

分類Dev

Uncaught TypeError:オブジェクトはオブジェクト作成の関数ではありません

分類Dev

AngularjsディレクティブTypeError:オブジェクトは関数ではありません

分類Dev

フェードアウトは関数ではありませんjquery3.3.1

分類Dev

ジェストテスト:「state.getは関数ではありません」

分類Dev

Kivyの子オブジェクトウィジェットの位置を更新します(Pythonは.kvではありません)

分類Dev

方向性ウィジェットが見つかりません。InkWellウィジェットには、Directionalityウィジェットの祖先が必要です

分類Dev

JavaScriptオブジェクト: 'addEventListenerは関数ではありません'

分類Dev

Uncaught TypeError:オブジェクト(...)は関数ではありません

分類Dev

Javascript:エラー、オブジェクトは関数ではありません

Related 関連記事

  1. 1

    ノックアウト検索の問題オブジェクト#<Object>のプロパティ 'model'は関数ではありません

  2. 2

    Uncaught TypeError:2つのウィジェットが使用されている場合、e.widget.extendはSugarCRMの関数ではありません

  3. 3

    qmlからc ++メソッドを呼び出せません:「オブジェクトのプロパティは関数ではありません」

  4. 4

    戻り値の型はウィジェットではありません:SetStateの問題

  5. 5

    オブジェクト#<Object>のプロパティ '$'は_.extend._ensureElementの関数ではありません

  6. 6

    .findはcheerioオブジェクトの関数ではありません

  7. 7

    setはfirebaseRefオブジェクトの関数ではありません

  8. 8

    オブジェクト#<HTMLFormElement>のプロパティ 'submit'は関数ではありません

  9. 9

    オブジェクトのプロパティは関数ではありません

  10. 10

    TypeError:オブジェクト#<ServerResponse>のプロパティ 'locals'は関数ではありません

  11. 11

    「この関数の戻り値の型は「ウィジェット」ですが、returnステートメントで終わりません。」

  12. 12

    Odoo10 Javascriptウィジェットアクションが機能しない:ClientWidgetは関数ではありません

  13. 13

    未定義のangularjsプッシュオブジェクトは関数ではありません

  14. 14

    Uncaught TypeError:オブジェクトはGoogleマップの関数ではありません

  15. 15

    MaterialLocalizationsが見つかりません-MyAppウィジェットでは、Localizationsウィジェットの祖先がMaterialLocalizationsを提供する必要があります

  16. 16

    この関数の戻り値の型は「ウィジェット」ですが、returnステートメントで終了しません

  17. 17

    前後のフィッティング関数でのLMERConvenienceFunctionsエラー:モデルがmerオブジェクトではありません

  18. 18

    JS:Uncaught TypeError:オブジェクト[オブジェクトオブジェクト]のプロパティ '$'は関数ではありません

  19. 19

    TypeError:オブジェクト[オブジェクトオブジェクト]のプロパティxxxは関数ではありません

  20. 20

    Tkinterウィジェットの色は変わりません

  21. 21

    Uncaught TypeError:オブジェクトはオブジェクト作成の関数ではありません

  22. 22

    AngularjsディレクティブTypeError:オブジェクトは関数ではありません

  23. 23

    フェードアウトは関数ではありませんjquery3.3.1

  24. 24

    ジェストテスト:「state.getは関数ではありません」

  25. 25

    Kivyの子オブジェクトウィジェットの位置を更新します(Pythonは.kvではありません)

  26. 26

    方向性ウィジェットが見つかりません。InkWellウィジェットには、Directionalityウィジェットの祖先が必要です

  27. 27

    JavaScriptオブジェクト: 'addEventListenerは関数ではありません'

  28. 28

    Uncaught TypeError:オブジェクト(...)は関数ではありません

  29. 29

    Javascript:エラー、オブジェクトは関数ではありません

ホットタグ

アーカイブ