开发者

Creating Element from JQuery Drag and Drop

Hi I want to be able to create html elements based on drag and drop functionality. I want to use the Jquery UI Library to do this. The HTML Code is here http://pastebin.com/0cn5FDWr

What I want to do is on the when an item is dropped I want to check which item is being dropped and then append some html elements after the drop div (i.e create an input tag, image etc...).

Not sure how I would do this, if this can be done by calling custom function containing the co开发者_如何学Cde then it would be good.

Thanks


First you should specify which elements you want the droppable to accept. You do this by setting the accept option to .drag().

I've made a two small examples on jsFiddle, the first one using sortable and the second using draggable/droppable.

  • example 1
  • example 2


You can have an external function in the drop call that receives the dropped element and based on that you add whatever you want:
Javascript:

$(function() {
    var $result = $('.result');
    $('.drag').draggable({
        revert: "invalid"
    });
    $('.drop').droppable({
        drop: function(e, ui) {
            outputResult(ui.draggable);
        }
    });

    function outputResult(elm) {
        if ($(elm).hasClass('oTextInput')) {
            $result.append('<input type="text" />');
        } else if ($(elm).hasClass('oRadioInput')) {
            $result.append('<input type="radio" />');
        }
    }
});

HTML:

<div>
    <div class="drag oTextInput">Drag me!</div>
    <div class="drag oRadioInput">Drag me!</div>
    <div class="drag">Drag me!</div>
    <div class="drag">Drag me!</div>
    <div class="drag">Drag me!</div>
    <div class="drag">Drag me!</div>
    <div class="drag">Drag me!</div>
</div>
<div class="drop">drop here!</div>
<div class="output">
    <h2>Results:</h2>
    <div class="result"></div>
</div>

Example link.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜