display:none は要素をブラウザーに表示しませんが、HTML をブラウザーに出力し、ブラウザーのレンダリングに依存して要素を表示するかどうかを選択します。これにより、ページの読み込みと CSS の適用の間に遅延がある場合、要素が画面上で「ちらつく」ことがあります。
元の質問への回答として、runat を使用している場合、どのように要素にドラッグ可能を適用できますか?
オプション 1:
ドラッグ可能なサーバー側を設定できます。
draggable.Attributes["draggable"] = "true"
これは(あなたの例から)出力されます:
<div class="create_box" id="draggablebox" runat="server" visible="false" draggable="true">
...
</div>
HTML5 で要素をドラッグ可能にする - jQuery オプションが行っているのと同じ。
オプション 2:
別のセレクターを使用して jQuery で設定します。
現在、ID に基づいて選択していますが、コントロールはサーバー側のコントロールであるため、設定した ID であり、ブラウザーに出力するものではありません。ID はサーバー側のコントロール ID になっています。
コントロールに CSS クラスを与え、代わりにこれを使用して要素を選択できます。
<script>
$(function () {
$(".draggablebox").draggable();
});
</script>
<div class="create_box" id="draggablebox" class="draggablebox" runat="server" visible="false">
...
</div>
オプション 3:クライアント側スクリプトで正しい ID を指定する
ASPX ページで、正しい「ClientID」を使用するように出力 JavaScript を変更できます。下記参照:
<script>
$(function () {
$('<%= draggablebox.ClientID %>').draggable();
});
</script>
<div class="create_box" id="draggablebox" class="draggablebox" runat="server" visible="false">
...
</div>
これが役立つことを願っています!
カート