jQuery 中的 EVAL,这是正确的方法吗?

发布于 2024-09-19 12:19:08 字数 696 浏览 4 评论 0原文

我需要用 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,并且名称不同,因此按钮就有了该功能的名称。

I need to call a jQuery function with EVAL (but I don't know how to do it), then I solve with this solution, but I don't think that this is the correct way...

<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 is a general function for each form, each form has a different CUSTOMFUNCTION with different name, by this reason, the button has the name of the function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

攒眉千度 2024-09-26 12:19:21

在这种情况下你不需要评估。在 JavaScript 中,您可以使用点符号或方括号。他们的意思是一样的。试试这条线。

$('#eval_div').html(jQuery.fn[$(button).attr('myFunction')](data));

You don't need eval in this case. In JavaScript you can use dot notation or square brackets. They mean the same thing. Try this line.

$('#eval_div').html(jQuery.fn[$(button).attr('myFunction')](data));
奈何桥上唱咆哮 2024-09-26 12:19:19

如果您只想调用该函数...您可以非常简单地做到这一点:

function (data) {
    jQuery.fn[$(button).attr('myFunction')](data);
};

If you just want to call the function... you can do it very simply:

function (data) {
    jQuery.fn[$(button).attr('myFunction')](data);
};
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文