我正在尝试围绕 jquery DataTables
创建一个包装器,我将在其中编写自定义控件,但我认为这个问题与 jQuery
相关,而不是与某些东西相关否则。
在我的 HTML
( View )中,我像这样调用我的自定义插件:
<script type="text/javascript">
$(document).ready(function () {
$('#example').MyDataTable("some string");
});
</script>
然后我扩展原始的 DataTables
API,如下所示:
(function ($) {
$.fn.MyDataTable = function (name) {
//some code to get DataTables settings
var oTable = $(this.selector).dataTable(options);
//more code..
return this;
}
}(jQuery));
我有另一个 .js
文件,我将其包含在同一页面中,并用它来初始化我的处理程序。在这个文件中,我想像这样使用 oTable
:
$('#btnClearFilter').on('click', function () {
console.log(oTable);
oSettings = oTable.fnSettings();
我尝试了不同的方法来获取oTable
对象。大多数时候我都没有定义。我可以让它工作的唯一方法是在文件中进行此修改的包装器代码:
var oTable;
(function ($) {
$.fn.bsDataTable = function (pageName) {
但我不喜欢这样公开 oTable
,而且我认为有一个很好的机会以更好的方式做到这一点。
最佳答案
您必须创建一个可在 .js
文件中访问的全局变量,我在您问题的最后一部分中看到了它,但在该 js
中定义了变量在您想要使用它的地方并从该插件 .js
设置它。我确信您会从该变量中获取对象。
关于javascript - 如何使用另一个 js 文件中自定义 jQuery 插件中声明的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011462/