jQuery UI小部件:我如何获取小部件的容器?
我目前正在开发一个使用widget工厂的jQuery UI小部件,并且我需要包含我的小部件的选择器。jQuery UI小部件:我如何获取小部件的容器?
要澄清一些事情:
- 我使用jQuery UI选项卡(官方)
- 我的窗口小部件在每个标签创建(每片1个实例,这意味着不同的显示器)
- 当我执行在标签的动作,需要更新位于同一选项卡中的小部件
问题:
- 当我执行上述操作,更新不会出现在正确的标签,但在第一个
我想对我的行动听众的若干修改,但我相信这个问题来自于小部件本身。一切都是用类定义的(因为它意味着多次出现),除了用id定义的选项卡本身之外。我试图使它在所述div#id
的孩子的widget元素中发生,但它不起作用。
我需要的是知道如何从得到widget的容器内控件的代码,可以使修改在右边的选项卡
谢谢你的帮助。
编辑:这里是显示我的应用程序的(非常)基本结构的jsfiddle。当我启动我的动作时,我会在最近的小部件实例上执行此操作,即在同一个选项卡中执行此操作。但实际效果在第一个选项卡中。这是因为(我认为)我的插件使用类来定位自己的元素。但是,如果我可以说
获取谁是我在
创建容器我相信孩子的元素,将工作
你需要使用类似:
myElement.mywidget("widget");
是的,这是一个,例如你可以做$('#container')。autocomplete({opts ......})。autocomplete('widget')。attr('id ”, 'container_autocomplete_widget'); – TecHunter 2012-07-24 08:35:43
根据您的小提琴完成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');
});
});
你能发表一些代码吗?我不确定我是否完全掌握了这一点,您想要检索/更改执行动作时使用的原始选择器? – 2011-02-23 16:21:34
我相信添加代码并不是一个好主意,因为它只有500行用于插件,还有其他应用程序更多。我会编辑我的帖子,并尝试使其更清晰 – 3rgo 2011-02-23 16:25:29
也许不是整个代码,但也许只是“占位符”。例如“这是我的标签结构少内容”“我想调用这个命令并得到这个结果”。 – 2011-02-23 16:27:59