javascript - JS 运行函数在多暗淡对象中失败..不确定这是否可能

标签 javascript jquery

好的,我在 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/

关于javascript - JS 运行函数在多暗淡对象中失败..不确定这是否可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22405997/

相关文章:

javascript - 无法更改 <SideNav> 的背景颜色

javascript - 如何将表格添加到我的 rmarkdown html 输出中,该表格将粘贴到带有格式的 Excel 中?

javascript - 使用 jQuery 获取完整的 URL,包括问号后的参数?

javascript - Html.DropDownList 在 JSON 中使用 .val() 作为 null 传递

javascript - 使用js的页面中的所有css类

javascript - 我有一个关于输入按钮

javascript - nouislider 连接选项错误

javascript - Nextjs 删除工作箱 console.log 消息

javascript - 单击后通过 JavaScript 动态创建 jQuery Mobile 页面

jQuery拖放到特定容器到新添加的容器