这似乎很野蛮。我试图传递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");
最佳答案
您可以通过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);
};
}