2

我目前正在开发一个使用小部件工厂的 jQuery UI 小部件,我需要获取包含我的小部件的选择器。

清理事情:

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

问题 :

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

我尝试了对我的操作的监听器的一些修改,但我相信问题来自小部件本身。一切都是用类定义的(因为它应该出现多次),除了用 id 定义的选项卡本身。我试图让它发生在 widget 元素中,它是 said 的子元素div#id,但它不起作用。

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

谢谢你的帮助。

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

获取我创建的容器的子元素

我相信它会起作用

4

2 回答 2

1

你需要使用类似的东西:

myElement.mywidget("widget");
于 2012-07-24T08:31:30.350 回答
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');
   });
});​
于 2012-07-24T08:40:56.863 回答