我需要为jQuery UI可调整大小的元素提供自定义句柄,这些元素不是此元素的子元素。我尝试按照它在jQuery UI documentation page上记录的方式进行操作,但是我无法让它工作,并且我的想法已经用完了。
这是我的示例设置(不工作):
HTML
<div id="wrapper">
<div id="resize-me"></div>
</div>
<div class="ui-resizable-handle ui-resizable-n" id="n-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-e" id="e-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-s" id="s-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-w" id="w-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-ne" id="ne-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-se" id="se-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-sw" id="sw-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-nw" id="nw-resize-handle"></div>
JS
$('#resize-me').resizable({
handles: {
n: $('#n-resize-handle'),
e: $('#e-resize-handle'),
s: $('#s-resize-handle'),
w: $('#w-resize-handle'),
ne: $('#ne-resize-handle'),
se: $('#se-resize-handle'),
sw: $('#sw-resize-handle'),
nw: $('#nw-resize-handle')
}
});
上准备了此问题的演示
我在网上搜索了如何实现类似内容的示例。也许这里有人这样做,可以指出我错过了什么?
我已经看过this SO question,但我认为这不是重复,因为对于生产代码而言,答案是不可行的,正如答案作者所说。
非常感谢任何帮助。
答案 0 :(得分:1)
您可以尝试此解决方法。我在div resize-me中插入动态div。
HTML
<div id="wrapper">
<div id="resize-me"></div>
</div>
<div id="divHandles">
<div class="ui-resizable-handle ui-resizable-n" id="n-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-e" id="e-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-s" id="s-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-w" id="w-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-ne" id="ne-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-se" id="se-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-sw" id="sw-resize-handle"></div>
<div class="ui-resizable-handle ui-resizable-nw" id="nw-resize-handle"></div>
</div>
JS $(document).ready(function(){apply Resize(“#resize-me”);});
function appliResize(elementName){
$.each($("#divHandles").find(".ui-resizable-handle"), function (index, value){
$(elementName).append($(value).clone().attr('id',$(value).attr('id')+elementName.slice(1)));
});
$('#resize-me').resizable({
handles: {
n: '#n-resize-handle'+elementName.slice(1),
e: '#e-resize-handle'+elementName.slice(1),
s: '#s-resize-handle'+elementName.slice(1),
w: '#w-resize-handle'+elementName.slice(1),
ne: '#ne-resize-handle'+elementName.slice(1),
se: '#se-resize-handle'+elementName.slice(1),
sw: '#sw-resize-handle'+elementName.slice(1),
nw: '#nw-resize-handle'+elementName.slice(1)
}
});
}
答案 1 :(得分:0)
不是您希望的答案,但是 - 这是一个jQuery UI的开放(未解决)错误。 http://bugs.jqueryui.com/ticket/9658
更新:此错误已在2015年3月发布的jQueryUI 1.11.4中得到修复。