jQueryUI写一个调整分类的拖放效果实现代码

 更新时间:2012年05月10日 01:09:38   作者:  
最近,想用jQuery做一个网页的树目录结构,并且可以使用鼠标拖动调整选项的位置。我在网上找了一下插件,基本上看了好几款比较著名的,都觉得代码太复杂了或者界面太丑了等各种不符合我的要求
所以还是自己动手丰衣足食,还是坚持简单就是美的代码风格。


试试在iframe里嵌入一个测试页面,你可以使用鼠标拖动项目,调整分类:

当然,这并不是我要的最终效果,只能说它已经实现了一个我想要的拖放效果。我要求的在这个基础上,还要增加自动排序,位置变更后恢复之前元素bind的jQuery事件等。

代码

代码如下,如要复制,请先查看纯文本版本!

复制代码 代码如下:

<!DOCTYPE html>
<html>
<head>
<title>Drag & Drop Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript"
src="https://readself.com/static/js/jquery.min.js?v=52337"></script>
<script type="text/javascript"
src="https://readself.com/static/js/jquery-ui.min.js?v=ab482"></script>
<link rel="stylesheet" type="text/css"
href="https://readself.com/static/css/smoothness/jquery-ui.css?v=af3ef" />
<style type="text/css">
li {cursor: pointer}
.menu_hover {background-color: #d0d0d0;}
#menu p{margin: 5px 0 5px 0;}
</style>
<body>
<ul id="menu">
<li class="folder">
<p>Fruits</p>
<ul>
<li>Apple</li>
<li>Pear</li>
<li>Banana</li>
</ul>
</li>
<li class="folder"><p>Vegetables</p>
<ul>
<li>Tomato</li>
<li>Potato</li>
<li>Cucumber</li>
</ul>
</li>
<li class="folder"><p>Meet</p>
<ul>
<li>Beaf</li>
<li>Pork</li>
<li>Chicken</li>
</ul>
</li>
</ul>

<script>
$('#menu li').disableSelection();
$('li', $('#menu ul')).draggable({revert: 'invalid', helper: 'clone'});
$('#menu .folder').droppable({
hoverClass: "menu_hover",
drop: function(event, ui){
if(ui.draggable.parents('.folder').get(0) == $(this).get(0))
return ;
$('ul', this).append(ui.draggable.clone());
ui.draggable.remove();
$('li', this).draggable({remove: 'invalid', helper: 'clone'});
}
});
$('#menu .folder p').click(function(){
$(this).next().toggle();
});
</script>

相关文章

  • 原生javascript实现的分页插件pagenav

    原生javascript实现的分页插件pagenav

    这几天要做一个前台页面,涉及到分页,不想自己去写所以在网上找jquery看有没有好用一点的分页组件,结果发现有很多,但是都很麻烦,看到了这个叫pagenav的发现相对来说还是很容易上手的,于是就直接用了,在我看来,能解决问题的办法就是好办法.越简单越好.
    2014-08-08
  • jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】

    jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】

    这篇文章主要介绍了jQuery插件FusionWidgets实现的AngularGauge图效果,结合具体实例形式分析了jQuery使用FusionWidgets插件载入xml数据实现AngularGauge图的相关操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2017-03-03
  • jQuery选择器之层次选择器用法实例分析

    jQuery选择器之层次选择器用法实例分析

    这篇文章主要介绍了jQuery选择器之层次选择器用法,结合实例形式分析了jQuery后代元素选择器、子元素选择器、相邻元素选择器、兄弟元素选择器等相关使用技巧,需要的朋友可以参考下
    2019-02-02
  • jQuery+css+html实现页面遮罩弹出框

    jQuery+css+html实现页面遮罩弹出框

    面遮罩弹出框已经不是一个陌生的话题了,实现的方法大同小异多种多样,今天用jQuery实现页面遮罩弹出框,主要用的技术有JQuery,css和html,感兴趣的朋友可以参考下哈
    2013-03-03
  • 写JQuery插件的基本知识

    写JQuery插件的基本知识

    这篇文章主要介绍了从如何写JQuery插件,需要注意的事项,还有必须要做的步骤,看过这个文章相信你会明白如何写好一个JQuery插件
    2013-11-11
  • jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误

    jquery.bgiframe.js在IE9下提示INVALID_CHARACTER_ERR错误

    今天测试偶然发现jquery.bgiframe.js在IE9环境下提示错误,于是很是好奇,想办法知道究竟,于是搜索了一下,现在与大家分享希望可以帮助你们
    2013-01-01
  • 基于Jquery实现表单验证

    基于Jquery实现表单验证

    本文给大家分享的是一段基于Jquery实现表单验证的代码,非常简单实用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • 基于jquery的滚动条滚动固定div(附演示下载)

    基于jquery的滚动条滚动固定div(附演示下载)

    今天与大家分享一下我写的一个滚动条滚动固定div的例子,现在很多地方都可以看到这样的效果
    2012-10-10
  • jquery实现拖拽添加元素功能

    jquery实现拖拽添加元素功能

    这篇文章主要为大家详细介绍了jquery实现拖拽添加元素功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 基于jquery的获取浏览器窗口大小的代码

    基于jquery的获取浏览器窗口大小的代码

    今天正好用到这个,就网上搜了搜,贴出来了。需要的朋友可以参考下。
    2011-03-03

最新评论