传递值并将其显示为对象 - jquery

时间:2013-09-11 12:29:23

标签: javascript jquery object append

这可能看起来非常野蛮;我试图传递fApp和sApp并将它们称为对象,并被视为jquery对象。所以fApp将恰好适合这里:$ (ele).obj[fApp](to);并被视为.insertAfter。他们甚至不需要成为对象;我只是想要一种方式,所以我可以传递值,而不是写1000个追加,前置和其他东西。

再次解释

我知道,我不知道怎么解释它。几乎只是采用“fApp”并将值设置为“prependTo”,然后在此处调用“$(ele).obj[fApp](to);”,并将其视为实际的prependTo

这整个功能只是我的移动appender和桌面reappender。值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");

1 个答案:

答案 0 :(得分:4)

您可以在JS中以两种方式寻址属性:

  • 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);
  };
}