gpt4 book ai didi

javascript - jQuery插件开发执行一个函数的设置

转载 作者:行者123 更新时间:2023-11-27 23:18:15 25 4
gpt4 key购买 nike

我正在尝试组合一个自动完成 jQuery 插件。我知道有一个默认的,但我发现有时我只需要一些非常简单的东西,并且还想根据我的需要调整行为。最后,体验一下很有趣。如果它变得有用,我可能会为其制作一个小型插件网站。

无论如何;该插件有一些选项。其中之一是dataSource。它可以是对象、字符串或函数。我正在尝试完成任务以执行该函数。我尝试eval它,但是当我console.log时,它只记录该函数包含的JavaScript代码。

插件的实现

$('#search3').myAutoCompletePlugin({
completeOnEnter: false,
delay: 200,
dataSource: function() {
console.log('Hello!');
}
});

在插件的代码中,这就是我尝试执行它的方式。

...
getResults: function() {
var self = this,
dataSourceType = typeof self.options.dataSource;

self.request.items = [];

...
} else if (dataSourceType == 'function') {
// Callback as source, execute it
self.request.items = eval(self.options.dataSource);
console.log('function executed');
console.log(self.request.items);
}
...
},
...

我希望它记录“Hello!”,但我得到的是:

function executed
function () {
console.log('Hello!');
}

最佳答案

如果dataSource属性是一个函数,您可以直接调用它,不需要eval():

else if (typeof self.options.dataSource == 'function') {
self.request.items = self.options.dataSource();
console.log('function executed');
console.log(self.request.items);
}

关于javascript - jQuery插件开发执行一个函数的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35629190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com