虽然 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 页面中,您可以修改输出 javascript 以使用正确的“ClientID”。见下文:
<script>
$(function () {
$('<%= draggablebox.ClientID %>').draggable();
});
</script>
<div class="create_box" id="draggablebox" class="draggablebox" runat="server" visible="false">
...
</div>
我希望这有帮助!
库尔特