我正在尝试运行存储在数据属性中的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');
};
这可能还是有更好的解决方案?
答案 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"))
- 请不要这样做,这一点只是为了完整性