javascript - 如何使用另一个 js 文件中自定义 jQuery 插件中声明的对象

标签 javascript jquery

我正在尝试围绕 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/

相关文章:

javascript - JQuery $.get 包含单引号,PHP 返回单引号的反斜杠

javascript - 重新加载数据使数据堆栈和重复与.append - Jquery

javascript - 是否可以找到设置元素属性的 javascript?

javascript - 获取完整号码

javascript - 脚本堆栈空间耗尽 firefox

javascript - popstate HTML 5 事件被多次触发

javascript - 如何使用 AJAX/Javascript 打印响应?

Javascript 不允许每次单击时更新静态变量

javascript - 通过单击折叠按钮更改最大高度

javascript - 如何控制 requestAnimationFrame 的波速