这可能看起来非常野蛮;我试图传递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");
答案 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);
};
}