Javascript 如何使用自定义jQuery插件中从另一个js文件声明的对象
我试图围绕Javascript 如何使用自定义jQuery插件中从另一个js文件声明的对象,javascript,jquery,Javascript,Jquery,我试图围绕jquery DataTables创建一个包装器,在这里我将编写自定义控件,但我认为这个问题更多地与jquery有关 在我的HTML(视图)中,我这样调用我的自定义插件: <script type="text/javascript"> $(document).ready(function () { $('#example').MyDataTable("some string"); }); </script> 我还有另一个.js文
jquery DataTables
创建一个包装器,在这里我将编写自定义控件,但我认为这个问题更多地与jquery
有关
在我的HTML
(视图)中,我这样调用我的自定义插件:
<script type="text/javascript">
$(document).ready(function () {
$('#example').MyDataTable("some string");
});
</script>
我还有另一个.js
文件,我将其包含在同一页面中,并用于初始化我的处理程序。从这个文件中,我想使用oTable
如下:
$('#btnClearFilter').on('click', function () {
console.log(oTable);
oSettings = oTable.fnSettings();
我尝试了不同的方法来获得oTable
obejct。大多数时候我都没有定义。我能使其工作的唯一方法是在文件中,其中是我进行此修改的包装器代码:
var oTable;
(function ($) {
$.fn.bsDataTable = function (pageName) {
但我不喜欢这样公开
oTable
,我认为这是一个很好的机会,可以用更好的方式实现。您必须创建一个全局变量,该变量可以在.js
文件中访问,我在你的问题的最后一部分看到了它,但是在js
中定义变量,然后从插件.js
中设置它。我相信您将从该变量中获取对象。+1问得好,但是您似乎根本没有在任何选择器上实例化MyDataTable
?@RobSchmueckerMyDataTable
更像是一个包装器。我真正要做的是实例化原始的DataTable
-var-oTable=$(this.selector)
但使用此包装器主要是添加自定义的HTML
(用于不同的过滤器-文本框、下拉列表等),然后使用不同的.js
文件为不同的视图设置处理程序。我不知道这是否有意义,也许有更好的方法。我只是不想以$(“#mydiv).数据表(选项).MyWrapper(选项).
是的,它是双向的。你认为它更好吗?毕竟我只有一个包装器(我的gloabl现在在那里)和许多外部.js
文件-每个视图一个。因此我必须在每个文件中定义它。不确定这是否是改进?不,您不需要在所有文件中定义它,但您可以创建一个公共js文件,其中将包含变量列表,您只需为该变量赋值,并在使用后使其为空。
var oTable;
(function ($) {
$.fn.bsDataTable = function (pageName) {