2
4

4 に答える 4

2

それらがドラッグされると、次のようにクリック ハンドラーを設定してデフォルト アクションを防止します。

ui.draggable.find('a').click(function(e) { e.preventDefault(); });

私が言ったように、ドロップされたイベントでそれを行うのが遅すぎる場合に備えて、ドラッグされたときにそれを行います.

アップデート:

$('.draggable').draggable({ 
  start: function( event, ui ) {
    $('#dropdownAddTile').slideDown();
    ui.draggable.find('a').click(function(e) { 
      e.preventDefault(); 
    });
  },  
  stop: function() {
    $('#dropdownAddTile').slideUp();
  }, 
  containment: '#container', 
  snap:'.droppable', 
  snapMode:'inner', 
  revert:'invalid',
  snapTolerance: 32
});

あなたが電話できるようにui.draggable.find('a').click(function(e) { e.preventDefault();

于 2013-03-29T15:11:36.923 に答える
0

この問題は、Chrome、Firefox、または IE10 では発生しませんでしたが、IE9 以前では発生しました。

私のアドバイスはpreventDefault、イベントに出馬することです。コードを使用して、

function handleDropEvent( event, ui ) {
    event.preventDefault();
    var draggable = ui.draggable;
    var droppable = $(this);
    var droppableId = $(this).attr("id");
    var draggableId = ui.draggable.attr("id");
    $('.draggable').draggable({containment: '#container', snap:'.droppable', snapMode:'inner', revert:'invalid',snapTolerance: 32});
    $('.droppable').droppable({drop: handleDropEvent, accept: function(e){if(e.hasClass('draggable')) { if (!$(this).hasClass('occupied')) {return true; }}}});
    var initPosit = ui.draggable.parent().attr('id');

    $.post("tiles/updateTilePosition", { draggableId:draggableId, droppableId: droppableId }).done(function(data) {

    })
    $(this).addClass('occupied');
    ui.draggable.parent().removeClass('occupied');
    if($(ui.draggable).parent() !==$(this)){
        $(ui.draggable).appendTo($( this ));
    }
}

また、ソース コードを表示すると、すべてがエンコードされています (アポストロフィ、引用符など)。どうしてそうなったのかわかりませんが、修正します。

于 2013-03-29T15:16:35.197 に答える
-1

onclick が false を返すように設定してみてください。

于 2013-03-29T15:06:09.143 に答える
-3

私が正しく理解していれば、リンクをドラッグできないようにしたいだけですか?これを行う:

<a href="#test" draggable="false">Test</a>

これは基本的にドラッグ機能を無効にする方法です.idkなぜ誰もがこれほど長いコードを書くのか....

于 2019-01-22T20:17:22.957 に答える