1

小さなパターンを div または body にドロップし、その div または body の背景を持ち、パターンを受け取った方を x と y でパターンを繰り返します。jsfiddleを参照してください。Gallery div からパターンをドラッグして body にドロップすると、body だけが背景パターンを取得します。すごい!それはうまくいきます。しかし、パターンをキャンバス div にドロップすると、本体とキャンバスの両方がパターンを取得します。ドロップ ターゲットのときにキャンバスにパターンを取得させるにはどうすればよいですか。ドロップハンドラーの最後で、私が知っているあらゆる方法で伝播を停止しようとしました。. .

 e.stopPropagation();
 e.stopImmediatePropagation();
 return false;

しかし、何も機能していません。

助けてくれてありがとう。

4

1 に答える 1

1

You had it almost right. I've modified your fiddle to show the change.

You needed to add the greedy property in the thumb_dropOps object. Modify your function to be the following:

var thumb_dropOps = {       
    drop : thumb_drop,
    accept : '#pattern',
    greedy: true
};

Here is a reference link: jQuery UI - Droppable API Docs

Per the jQuery UI Documentation:

By default, when an element is dropped on nested droppables, each droppable will receive the element. However, by setting this option to true, any parent droppables will not receive the element. The drop event will still bubble normally, but the event.target can be checked to see which droppable received the draggable element.

于 2013-06-11T16:47:22.353 に答える