【发布时间】:2011-03-18 02:09:02
【问题描述】:
我正在使用 jquery 和 jquery ui 的拖放功能开发单个工具栏插件。这个想法如下:我有一个列表(ul)和项目(li),其中每个都代表一个工具,如文本、几何图形等。当我拖动一个工具然后将其放在容器上时,必须创建一个“小部件”。问题是在将工具拖放到容器上之后,它不再可以通过拖放获得。拖放功能只能使用一次。
希望你能帮助我。对不起我的英语。
这里是代码
插件
(function($){
//Attach this new method to jQuery
$.fn.extend({
//This is where you write your plugin's name
spkToolbar: function(options) {
//Set the default values, use comma to separate the settings, example:
var defaults = {
isDraggable:false
,droppableDiv:undefined
};
var options = $.extend(defaults, options);
//Iterate over the current set of matched elements
return this.each(function() {
var o = options;
$(this).addClass('toolbar');
if(o.isDraggable)
$('.toolbar').draggable();
$(this).addClass('spkToolbar');
var obj = $(this);
//Get all LI in the UL
var items = $("ul li", obj);
items.draggable({ appendTo: "body",helper: 'clone' });
if(o.droppableDiv!=undefined){
$(o.droppableDiv).droppable({
drop: function( event, ui ) {
// some extra code for proper widget creation
}
});
}
});
}
});
})(jQuery);
html
<div id="toolbar">
<ul>
<li id="save" title="Guardar cambios"><img src="<c:url value="images/toolbar/save.png" />" /></li>
</ul>
</div>
用法:
jQuery('#toolbar').spkToolbar({droppableDiv:'#new-dropcontainer'});
差点忘了,我用的是 jquery 1.5 和 jquery ui 1.8.1
提前致谢
【问题讨论】:
标签: jquery jquery-ui drag-and-drop