2016-11-08 8 views
0

マイ.popupのdivを聞いていない、このjqueryの機能のおかげでドラッグ可能です:divがjqueryの関数に

$(function() 
{ 
    $('.popup').draggable({ 
     drag: function(event, ui) {} 
    }); 
}); 

しかし...ページがロードされると、私は他に.popup div要素を追加divのinnerHTML。このdivはドラッグ可能ではありません。なぜなのかご存知ですか ?

はステファン

、あなたの助けのために
+0

あなたはいくつかのより多くのコードを与える必要があります。 – Asim

+0

ページロード時に '.draggable'メソッドを適用するのは、その時点で存在する' .popup'要素だけです。これは役立つかもしれません:http://stackoverflow.com/questions/15909041/jquery-how-to-use-live-on-draggable –

答えて

0

をありがとうしかし...ページがロードされると、私は別のdivのinnerHTMLの中.popup div要素を追加します。このdivはドラッグ可能ではありません。なぜなのかご存知ですか ?

これは、新しいdivがクラスポップアップを追加したとしても、ドラッグ可能な要素に初期化されていないためです。

次のような操作を行うことがあります。

$(function() { 
 
    $('#btn').on('click', function(e) { 
 
    $('div.ui-widget-content:not(.popup)').addClass('popup').draggable({ 
 
     drag: function(event, ui) { 
 
     console.log('2 drag'); 
 
     } 
 
    }); 
 
    }) 
 
    $('.popup').draggable({ 
 
    drag: function(event, ui) { 
 
     console.log('1 drag'); 
 
    } 
 
    }); 
 
});
.ui-widget-content { width: 100px; height: 100px; padding: 0.5em; display: inline; }
<link href="https://code.jquery.com/ui/1.12.0/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 

 
<div class="ui-widget-content popup"> 
 
    Drag me around 
 
</div> 
 
<div class="ui-widget-content"> 
 
    Second Drag me around 
 
</div> 
 
<button type="button" id="btn">Add popup class to second div</button>

+0

ありがとうございました!出来た ! –

+0

Sooo ...あなたのコードを使用すれば... 2番目のdivが動作します。それはドラッグ可能です。しかし、別のdivを作成すると(前のidとは異なるid-widget-contentで)、2番目のdivはもう動作しません。第3の(そして第1の)もののみがドラッグ可能です。 –

+0

@StefanDigital divをドラッグ可能にしたい場合、コードは次のようになります:$( 'div.ui-widget-content:not(.popup)')addClass( 'popup')。draggable({ divを指定するには?div(div.ui-widget-content:not(.popup) ')を正しいセレクタを使って変更する必要があります。 $( '#div1')。addClass( 'popup')。draggable({これがあなたに役立つことを願っています。ありがとうございます。 – gaetanoM

関連する問題