如何从jQuery调用Javascript方法

m3eecexj  于 2023-04-29  发布在  jQuery
关注(0)|答案(2)|浏览(151)

我有一个输入类型复选框,其中有一个数据属性。data属性包含一个JavaScript方法,需要在单击该文本框时执行。

<input type="checkbox" id="id001" data-display="checkDisplayOption(p1,p2,p3);">

在jQuery中-

$("#id001").click(function(){
     $("#id001").data("display");
});

我正在寻找$(“#id001”)。data(“display”);以触发checkDisplayOption方法,但该操作未发生。

bwleehnv

bwleehnv1#

jQuery代码中的选择器缺少#符号,无法通过ID选择复选框。它应该是$(“#id001”)。click(function(){...
更好的方法是将函数名存储为data-display属性的值。

试试下面的代码

$("#id001").click(function () {
    var functionName = $(this).data("display");
    var params = $(this).data("params").split(",");
    window[functionName].apply(this, params);
});

function checkDisplayOption(p1, p2, p3) {
    console.log("checkDisplayOption called with params:", p1, p2, p3);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="id001" data-display="checkDisplayOption" data-params="p1,p2,p3">
wtlkbnrh

wtlkbnrh2#

您可以使用eval()函数从jQuery调用JavaScript函数。下面是一个如何修改代码以调用checkDisplayOption函数的示例:

$("#id001").click(function(){
    eval($("#id001").data("display"));
});

这将评估存储在#id001元素的data-display属性中的字符串,并将其作为JavaScript代码执行。在这种情况下,它将使用指定的参数调用checkDisplayOption函数。

相关问题