JS运行函数在多个dim对象失败.不确定这是否可能
JS run function with in multi dim object failing.. not sure if this is even posisble
好的,我有一个html元素的属性:data-content='from:function:project101.login.check'
我想能够运行的功能在于project101.login.check.
但是我写的js我不确定我怎么能做到这一点。
目前js得到字符串,但不能运行它。
http://jsfiddle.net/3M7hC/html<a href="some href" data-loader data-content='from:function:project101.login.check' >target</a>
JS
var project101 = {
login: {
check: function(){
alert('function hit!');
}
}
}
$('*[data-loader]').click(function(e){
e.preventDefault();
var contentParams = $(this).attr('data-content').split(':');
console.log( contentParams );
switch( contentParams[0] ){
case 'from':
switch( contentParams[1] ){
case 'function':
contentParams[2]();
break;
}
}
});
不使用eval
,您可以在.
上拆分字符串并向下钻取对象,直到找到所需的位置。
function getObjFromPath(path, context){
var obj = context || window,
pathArray = path.split('.');
for(var i = 0; i < pathArray.length; i++){
obj = obj[pathArray[i]];
}
return obj;
}
然后调用函数:
var func = getObjFromPath(contentParams[2]);
func();
演示:http://jsfiddle.net/SyFWh/
你可以这样使用
eval(contentParams[2])();
作为你在contentParams[2]
中得到的只是一个字符串,而不是一个函数对象。因此,eval(..)
将其计算为js
函数,最终可以调用
相关文章:
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- jquery Ajax没有;不要显示任何信息(既不显示成功也不显示失败)
- HTML5 Canvas toDataURL(“image/png”)适用于一些绘画,而有些则不然,不确定原因
- 不确定我在PHP AJAX中使用的是什么开发模式
- 传递数量不确定的可能嵌套的对象属性
- 不确定react.js的异步执行时间
- 使用JavaScript进行即时验证-不确定从哪里开始
- Javascript正则表达式失败,但不确定原因
- 如何在 html 和 javascript 中显示隐藏不确定的循环进度条
- 不确定如何标记 OnClick 事件
- Getting a Maximum call stack size exceeded error,但不确定原因
- 意外的令牌,但不确定原因
- onclick启动打开弹出窗口的javascript-不确定函数调用
- JQuery 选择子元素(如果不是直接在父元素下,则不确定是否可选)
- 不确定为什么使用$(this)的函数没有'不起作用
- 不确定touche.js是否就是这样工作的
- 我不确定我缺少什么才能使此应用程序在Websockets上在Google Cloud上正常工作
- 不确定如何调试以下内容:未捕获的语法错误:意外的令牌 [.
- jQueryajax失败,不确定原因
- JS运行函数在多个dim对象失败.不确定这是否可能