假设我正在使用一些html5数据字符,并且我想知道当某个div标记完成某些操作时要调用哪个函数。
所以我的数据看起来就像
data-callback='jsAPI.aSubset.desiredFunction'如何将该回调(字符串)转换为我想要调用函数。一个简单的全局函数,例如
data-callback='_myfunction'
<script>
function _myfunction() { alert("yes my function"); }
$("div").click(function() {
var fn = $(this).data("callback");
if (typeof fn === 'function') {
fn();
}
})
</script>但是我该如何使用前一个呢jsAPI.aSubset.desiredFunction谢谢
发布于 2012-01-19 07:11:54
只有在没有.链的情况下,才能使用方括号。
试着这样做:
var elms = fn.split(".");
var curr = window;
var nxt;
while(nxt = elms.shift()) curr = curr[nxt];
curr();发布于 2012-01-19 07:21:00
听起来像是可怕的eval()的一个很好的用例。
我会这样做:
var fnString = "jsAPI.aSubset.desiredFunction";
var fn = eval(fnString);
if (typeof(fn) === "function") {
fn.apply();发布于 2012-01-19 07:08:54
使用方括号...
jsAPI.aSubset[fn]();所以..。
if (typeof jsAPI.aSubset[fn] === 'function') {
jsAPI.aSubset[fn]();
}https://stackoverflow.com/questions/8918838
复制相似问题