基于Cerbrus的解决方案;
Passing function with custom data attribute
是否可以将参数作为自定义属性的一部分传递?所以像;
<div data-myattr="hello(foo)"></div>
答案 0 :(得分:1)
为什么?
我的意思是,是的,如果你想对parens中的内容进行RegEx匹配,用逗号分隔,然后注入它们。但这很疯狂。
为什么不再制作第二个数据属性?
<div data-command="myFunction" data-params="one,two,three"></div>
然后抓住所有内容:
var command = document.querySelector("[data-command]"),
vars = command.dataset.params.split(","),
funcName = command.dataset.command;
window[funcName](vars[0], vars[1], vars[2]);
或者:
window[funcName].apply(undefined, vars);