jQuery UI小部件:如何获取小部件的容器?

时间:2011-02-23 16:17:30

标签: jquery jquery-ui jquery-widgets

我目前正在开发一个jQuery UI小部件,用于使用widget工具,我需要让选择器包含我的小部件。

要清理:

  • 我使用jQuery UI标签(官方)
  • 我的小部件在每个标签中创建(每个标签一个实例,意味着不同的显示)
  • 当我在选项卡中执行操作时,需要更新位于同一选项卡中的小部件

问题:

  • 当我执行上述操作时,更新不会出现在右侧选项卡中,而是出现在第一个

我在我的动作上尝试了几个听众修改,但我相信问题来自于小部件本身。一切都是用类定义的(因为它意味着多次出现),除了用id定义的标签本身。我试图在widget元素中实现它,它是所述div#id的子元素,但它不起作用。

我需要知道如何从 小部件的代码中获取小部件的容器,以便在右侧选项卡中进行修改

谢谢你的帮助。

编辑 :这是jsfiddle,显示了我应用的(非常)基本结构。当我触发我的动作时,我会在最近的小部件实例上执行此操作,这意味着在同一个选项卡中。但实际效果是在第一个标签中。这是因为(我认为)我的插件使用类定位自己的元素。但如果我能说

  

获取我在

中创建的容器的子元素

我相信它会起作用

2 个答案:

答案 0 :(得分:1)

您需要使用以下内容:

myElement.mywidget("widget");

答案 1 :(得分:0)

根据你的小提琴完成fnagel答案:

$(document).ready(function(){
   $('#tabs').tabs(); 

   $('#widget-1').mywidget().mywidget('widget').attr('id','widget-1_mywidget');
   $('#widget-2').mywidget().mywidget('widget').attr('id','widget-2_mywidget');

   $('.action').click(function(){
       var myWidget = $(this).siblings('.widget').mywidget("widget");
       myWidget.mywidget('dothis');
   });
});​