javascript - 获取 jquery ui 小部件的所有实例的引用?

标签 javascript jquery jquery-ui jquery-plugins jquery-ui-widget

我正在编写一个 jquery UI 小部件,它只是包装了 bootstrap popover 插件,在小部件中您可以传入选项“singular”, 如果传入此值,那么它应该调用该插件的所有其他实例的函数。

类似的东西

$('#one').myWidget();
$('#two').myWidget();
$('#three').myWidget();
$('#four').myWidget();

$('#one').myWidget('show'); //stuff from widget one is now visible
$('#two').myWidget('show'); //stuff from widget one and two are now visible
$('#three').myWidget('show'); //stuff from widget one, two and three are now visible
$('#two').myWidget('hide'); //stuff from widget one and three are now visible
$('#four').myWidget('show', {singular:true}); //stuff from widget four is now visible

所以,我想象 show 函数看起来像:

show: function(options){
    options = options || {};

    if(options.singular){
        var instances = '????'; // how do I get all instances?
        $.each(instances, function(i, o){
            o.myWidget('hide');
        });
    }

    this.element.popover('show');

}

那么,问题是,我如何获得对所有带有 myWidget 小部件的元素的引用?

最佳答案

您可以使用$(':ui-myWidget')哪里ui是您的小部件的 namespace 。它比使用像$('.ui-myWidget')这样的类选择器要慢。因此,在创建小部件时添加该类仍然是一个很好的做法。

jQuery UI 对所有小部件执行此操作,以便您可以通过 $(':ui-progressbar') 获取每个进度条或$('.ui-progressbar') .

This blog post更深入地解释“薄”。

关于javascript - 获取 jquery ui 小部件的所有实例的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13204159/

相关文章:

javascript - 等待注入(inject)的 <script> 元素中的 javascript 代码完成执行

javascript - 将数据从textarea保存到html数据库中

JQuery UI 对话框 : application-wide options

javascript - jQuery 同时显示一个 div 并隐藏另一个 div。目的是浏览 5 div 的

javascript - 如何在给定格式的 HTML 列表中显示 jQuery 数据值?

javascript - jQuery 点击切换事件

javascript - Meteor:从服务器上的url获取查询参数?用例 Instagram oAuth

php - Javascript 从单独的 php 脚本获取输出

javascript - 如何替换下拉菜单更改中链接的特定部分?

javascript - 如何在 Jquery DatePicker 的 OnSelect 事件中获取 keyCode?