我需要用EVAL调用一个jQuery函数(但我不知道怎么做),然后我用这个解决方案来解决,但我不认为这是正确的方法......
<script>
jQuery.fn.customfunction = function (data) { alert( data ); }
</script>
<div id="eval_div"></div>
<form><input role="button" myFunction="customfunction"/></form>
<script>
$('[role=button]').click( function() {
var button = this;
$.post( "/action",
$(form).serialize(),
function (data) {
$('#eval_div').html( "<script>" + $(button).attr('myFunction') + "('" + data + "');</script>" );
} );
});
</script>
customfunction是每个表单的通用函数,每个表单都有不同的CUSTOMFUNCTION,具有不同的名称,因此,该按钮具有该函数的名称。
答案 0 :(得分:2)
在这种情况下你不需要eval。在JavaScript中,您可以使用点表示法或方括号。他们的意思是一样的。试试这一行。
$('#eval_div').html(jQuery.fn[$(button).attr('myFunction')](data));
答案 1 :(得分:2)
如果您只想调用该功能......您可以非常简单地执行此操作:
function (data) {
jQuery.fn[$(button).attr('myFunction')](data);
};