jQuery的通带参数的函数的参数jQuery的方法
问题描述:
我想知道是否和如何你可以传递一个jQuery命令,函数的参数jQuery的通带参数的函数的参数jQuery的方法
var childs = ["#foo", "#bar"];
loopTheChilds("trigger('change')");
loopTheChilds("prop('disabled', true)");
var loopTheChilds = function (operation) {
$.each (childs, function (idx, val) {
$(val)[operation]();
});
}
我的GOL将获得此
$("#foo").trigger("change");
$("#bar").trigger("change");
// or
$("#foo").prop('disabled', true);
$("#bar").prop('disabled', true);
或知道如何以任何其他方式获得相同的结果。
感谢
答
你不能告诉的JavaScript代码是什么,除非你使用eval
但在评论中提到的,这是不是很安全,一般不建议执行作为一个字符串。然而你可以做的是让你的loopTheChilds
方法以函数作为参数,并且该函数有一个引用元素的参数。
所以,你可能最终会做一些像这样:
var childs = ["#foo", "#bar"];
loopTheChilds(function(elem) {
elem.trigger('change');
});
loopTheChilds(function(elem) {
elem.prop('disabled', true);
});
function loopTheChilds(func) {
$.each(childs, function(idx, elemName) {
func($(elemName)); //wrap in jquery selector
});
}
现在你只要沿着你想,当你调用loopTheChilds
方法来执行该功能通过。
+0
这不完全是我的想法,但在我看来,这是一个很好的解决方案。谢谢 –
这是可能的的eval(),但使用eval()被认为是不好的做法。 – WaldemarIce