从字符串/数据参数运行javascript函数

时间:2013-09-19 17:02:02

标签: javascript jquery

我正在尝试运行存储在数据属性中的javascript函数。

e.g。

<form data-success="test">...</form>

$('form').on('submit', function(e){
    e.preventDefault();
    var successFunction = $(this).data('success');

    // Run success function here
});

function test(){
    alert('run');
};

这可能还是有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

为什么首先在DOM中存储应用程序逻辑?为什么不在JavaScript中将功能存储在后备业务逻辑中?

证明是可维护性问题。 执行此操作,而是将您的函数存储在代码中,并将演示文稿的逻辑与运行时的逻辑分开。

最简单的方式是对表单进行分类并相应地运行一个函数,更好的方法可能是使用类似MV *模式的东西,但不要分歧。这是我能想到的最简单的解决方案,无需存储数据属性。这仍然没有正确分离关注点,但它比数据属性简单得多。

...

JavaScript with jQuery:

/now we select by class, and not just any form
$('.successForm').on('submit', function(e){
    e.preventDefault();
    test();
});

function test(){
    alert('run');
};

说,可以完成。 eval($(this).data("success")) - 请不要这样做,这一点只是为了完整性