如何使用 jQuery UI 设置自定义调整大小手柄?

问题描述 投票:0回答:3

我使用 jQuery UI 来允许调整页面元素的大小,但我想设置自定义句柄。我已经尝试了我认为应该有效的方法,但没有成功。

基本的html是:

 <div id="element_x" class="resizable">
  <div id="overlay_x" class="element_buttons">
   <div id="resize_element_x" class="resize_element ui-resizable-handle ui-resizable-se"><img src="images/site/handle_resize.png" border=0 title="Resize this element" /></div>
  </div>
 </div>

我是这样设置的:

   var reposition = '';
   $(function() {
    $( ".resizable" ).resizable({
     containment: "#viewPage",
     handles: {"e,s,se" : { e: '.ui-resizable-e', s: '.ui-resizable-s', se: '.ui-resizable-se'}},
     resize: function(event, ui){
       reposition = ui.position;
     }
    });
   });

这会在正确的位置产生正确的手柄,但是当我尝试调整大小时,它什么也没做!可能出了什么问题,或者有更好的方法吗?

html jquery-ui jquery-ui-resizable
3个回答
15
投票

您的自定义句柄语法错误。这对我有用:

   var reposition = '';
   $(function() {
    $( ".resizable" ).resizable({
     containment: "#viewPage",
     handles: { 'e': '.ui-resizable-e', 's': '.ui-resizable-s', 'se': '.ui-resizable-se'},
     resize: function(event, ui){
       reposition = ui.position;
     }
    });
   });

2
投票

解决方案不是我的,但它准确地显示了问题和解决方案是什么:

<p><a href="http://bugs.jqueryui.com/ticket/4310">jQuery UI #4310</a> - Custom resizable handles do not work unless the ui-resizable-xy and ui-resizable-handle classes are added.</p>

<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<link href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>


<div class="container">
    <div class="border bottom_right ui-resizable-se ui-resizable-handle"></div>
</div>

<script>
    $(function() {
        $('.container').resizable({
           handles: { se: '.bottom_right' } 
        });
    });
</script>

对我来说它有效! :)

http://jsfiddle.net/tj_vantoll/pFfKz/


0
投票

对我来说,最快的解决方案是更改缩放器样式。 示例:

$(document).ready(function() {
$("#myResizableContainerID").resizable({
  handles: "se"
});

$(".ui-resizable-se").css({
  width: "100%",
  height: "20px",
  background: "blue",
});

});

© www.soinside.com 2019 - 2024. All rights reserved.