0

当我尝试销毁可调整大小的 div 时,.ui-resizable-se 上的悬停功能不起作用。我想我必须使用 jquery live()。但我无法清楚地整合它。

如果在页面加载时悬停 .ui-resizable-se 或 .ui-resizable-e ,功能将起作用,但如果再次悬停,则不会发生任何事情。我该如何克服这个问题?

  $('#resizable').resizable({
    aspectRatio:false
  });
  $('.ui-resizable-se').hover(function(){
    keep("resizable");
  });
  $('.ui-resizable-e').hover(function(){
    dontKeep("resizable");
  });

来源链接:http: //jsfiddle.net/nNrgP/

4

3 回答 3

0

悬停在第一次之后不起作用,因为您调用resizable("destroy");了 Calling that

完全删除可调整大小的功能。这将使元素返回到它的预初始化状态。

可调整大小的破坏

如果您希望它仍然可用,您应该在 and 之间切换resizable("disable")resizable("enable")或者完全重新初始化可调整大小的 div。如果对您的目标(或其他代码)没有更多了解,很难说出最佳选择是什么。

于 2013-08-03T01:40:18.367 回答
0

您也可以只更新options

function dontKeep(val){
    $("#"+val).resizable("option", 'aspectRatio', false);
    alert("dont keep");
}
function keep(val){
    $("#"+val).resizable("option", 'aspectRatio', true);
    alert("keep");
}
于 2013-08-03T01:46:07.953 回答
0

尝试使用事件委托,因为您可能正在处理动态元素

$(document).on('mouseenter mouseleave', '.ui-resizable-e', function(){
    dontKeep("resizable");
});

$(document).on('mouseenter mouseleave', '.ui-resizable-se', function(){
    keep("resizable");
});

演示:小提琴

于 2013-08-03T01:46:40.093 回答