2

これは非常に野蛮に思えるかもしれません。fApp と sApp を渡してオブジェクトとして呼び出し、jquery オブジェクトと見なされるようにしようとしています。したがって、fApp は $ にちょうど収まり(ele).obj[fApp](to);、.insertAfter として表示されます。オブジェクトである必要さえありません。1000 個の追加、前置などを書く代わりに、値を渡すことができる方法が欲しいだけです。

もう一度説明

わかってる、他にどう説明したらいいのかわからない。" fApp" を取得して値を " " に設定し、prependToそれをここで " " 呼び出して$(ele).obj[fApp](to);、実際のオブジェクトであるかのように動作させるだけですprependTo

この関数全体は、私のモバイル アペンダーとデスクトップの再アペンダーにすぎません。from の値は、親要素を取得するものであり、デスクトップ ビューに変更されたときに追加、先頭、後または前に追加することを認識しています。

function appendMaster(ele, to, fApp, sApp) {
    var from = $(ele).parent();
    console.log(fApp);

    var obj = new Object;
    var obj2 = new Object;
    obj[fApp] = fApp;
    obj2[sApp] = sApp;

    var width = $(window).width();
    if (width < 640) {
        $(ele).obj[fApp](to);
    };
    if (width > 640 && width < 966) {
        // Do something
    };
    if (width > 966) {
        $(ele).obj2[sApp](from);
    };
}

appendMaster("#forming","body", "prependTo", "prependTo");
4

1 に答える 1

4

JS では、次の 2 つの方法でプロパティをアドレス指定できます。

  • obj.prop
  • obj['prop']

上記の文字列表記の代わりに'prop'、変数を入れることができますfApp

function appendMaster(ele, to, fApp, sApp) {
  var from = $(ele).parent();
  console.log(fApp);

  var width = $(window).width();
  if (width < 640) {
      $(ele)[fApp](to);
  };
  if (width > 640 && width < 966) {
      // Do something
  };
  if (width > 966) {
      $(ele)[sApp](from);
  };
}
于 2013-09-11T12:57:24.513 に答える