我正在利用 Jquery UI 可调整大小插件来调整各种 div 的大小。考虑以下 HTML 页面(嵌入了 JS):
<html>
<head></head>
<body>
<div id="site">
<div>This element is resizable</div>
<br />
<div style="width: 200px;">This is another resizable element</div>
</div>
<!-- javascript includes -->
<script>
$(function() {
$("#site div").click(function() {
console.log("Clicked");
if($(this).hasClass("selected")) {
$(this).removeClass("selected");
}
else { // Currently not selected, so let's select it
$(this).addClass("selected").resizable({
start: function(event, ui) {
console.log("Start");
},
resize: function(event, ui) {
console.log("Resize");
},
stop: function(event, ui) {
console.log("Stop");
}
});
}
});
});
</script>
</body>
</html>
所以,我在这个示例代码中想要完成的事情非常简单。当用户单击嵌套在“#site”中的 div 时,我希望 div 成为“选中”。所以,在这个例子中,当 div 的点击事件被触发时,一个名为“selected”的 CSS 类将被添加到被点击的 div 中。除了点击 div 之外,用户还可以调整 div 的大小。当用户调整所选 div 的大小时,就会出现问题。显然,当用户第一次选择 div 时会触发 click 事件,但是当用户单击并拖动 div 的边缘以调整其大小时也会触发 click 事件。点击事件将调用点击例程并取消选择 div。这不是我想要发生的。只有在所有可调整大小的事件都已触发后,才会触发 click 事件。
有了这个,我的问题是,我如何处理这种情况以允许用户单击并选择 div,但也允许调整 div 的大小,但在拖动和调整 div 的大小时不取消选择?感谢您的帮助。提前致谢。