将几个jqueryui元素相互绑定
binding several jquery ui elements to each other
是否可以设置一组由多个jquery ui元素组成的组,以便所有元素都响应与组中任何一个元素的交互?
编辑:例如,我有几个版本的非常相似的图像,我用jquery.tabs()将它们分组到不同的页面中。这些图像都可以通过各种jquery-ui操作(可拖动、可调整大小等)。除了图像的路径外,我的所有选项卡看起来都应该相同。因此,当我在一个选项卡中拖动或调整图像大小时,我希望其他选项卡中的相应图像也能这样做。
您想要做的事情可以通过使用UI对象提供的事件来完成,例如draggable()
:的drag
示例:http://jsfiddle.net/elclanrs/WcNNb/2/
$('#drag1').draggable();
$('#drag2').draggable({
drag: function(){
$('#drag1').offset({
top: $(this).offset().top,
left: $(this).offset().left - $('#drag1').width() - 20
});
}
});
例如:$('#element1').add($('#element2).draggable();
但如果要在拖动element2时拖动element1:由于在拖动过程中,元素得到一类ui可拖动拖动使用:
if($('#element1')).hasClass('ui-draggable-dragging')){
//drag #element2
}
让我们假设类似的元素有一个共同的类名,例如`class="elementType_n"。
然后,您可以选择所有类似的元素,并将其作为一个或按顺序进行操作,如下所示:
javascript:
$selection_n = $(".elementType_n");
$selection_n.on('eventType', function(){
//Here, depending on the action, either
//* act on $selection_n all together, eg. $selection_n.methodA(...)..methodB(...);
// or
//* act on $(this) with eg. $(this).methodA(...)..methodB(...); then use $(this)'s resulting properties to act on the rest of the selection, eg. $selection_n.not($(this).methodA(...)..methodB(...);
});
对于draggable,拖动隐藏的元素与可见的、拖动的元素是没有意义的。谁会看到他们搬家?相反,建立一个drag.oncomplete处理程序来设置不可见元素的偏移量,以匹配拖动元素的偏移。最终结果-完全相同。效率-更高。(可丢弃是另一回事)。
相关文章:
- 将动态元素绑定到函数;只剩下一个绑定
- Knockout绑定是膨胀的html(表单元格),如何使用javascript创建绑定或从父元素绑定
- 使用Kendo的动态HTML元素绑定
- 将多个元素绑定到同一onclick
- 如何在AJAX驱动的应用程序中优化元素绑定
- 使用AngularJS UI路由器时出现元素绑定问题
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件
- 如何在React Native中为ListView中的每个元素绑定函数
- 对克隆的image元素绑定onclick事件
- 将DIV元素绑定到溢出滚动条
- 使用ng repeat将表单元素绑定到角度中的新对象
- 将元素绑定到不同帧中的现有 AngularJS 作用域
- KNOCKOUTJS 将多个输入元素绑定到一个可观察量
- 如何将两个 html 元素绑定在一起,当第一个元素被删除时,第二个元素也从 DOM 中删除
- OOJS-将每个元素绑定到一个特定的点击
- 真正阻止元素绑定-取消绑定元素-AngularJS
- 如何在jQuery中将多个元素绑定到多个事件
- Vue.js-将同名的无线电元素绑定到数组
- 将两个数组元素绑定为一个
- Flotr2 -安全地销毁图形元素以及为该元素绑定的所有事件