【问题标题】:Jquery UI progressbar not animating with asp buttonJquery UI 进度条不使用 asp 按钮设置动画
【发布时间】:2014-02-17 11:04:04
【问题描述】:

我正在尝试使用 jQuery UI 进度条,当我单击 asp:Button 时,该进度条会显示在 jQuery UI 对话框中。

按钮声明如下:

<asp:Button ID="Button2" runat="server" Text="Télécharger" 
    CausesValidation="False" onclick="Button2_Click" OnClientClick="javascript:displayDialog()"/>

对话框声明如下:

<div id="dialog" title="Attente de téléchargement">
<p>Le fichier est en cours de préparation, le téléchargement devrait commencer sous peu.</p>
<div id="progressbar"></div>
</div>

最后是 javascript:

<script type="text/javascript">
    $(document).ready(function () {
        $("#dialog").hide();
    });

    function displayDialog() {
        $("#dialog").dialog();
        $("#progressbar").progressbar({
            value: false
        });
        $("#dialog").show();
    }
</script>

这似乎工作正常(因为 onclick 和 OnClientclick 函数都被调用)。后面的代码正确执行,对话框也显示出来。但是进度条的动画不起作用(见下图)。

我不明白发生了什么。我试过不使用显示/隐藏,但$("#dialog") 的属性.css("display","none").css("display","block") 结果是一样的。

但是,如果我不隐藏$(document).ready 上的对话框,则动画效果很好。当我在脚本标签中运行它时:

    $(document).ready(function () {
        $("#dialog").dialog();
        $("#progressbar").progressbar({
            value: false
        });
    });

对话框直接在页面加载时显示,如下所示:

这是正确的(我显然不希望在开始时使用它,但是当您单击按钮但进度条仍然正确显示时)。

【问题讨论】:

    标签: javascript jquery asp.net progress-bar


    【解决方案1】:

    您发现此问题是因为您将progress bar 包含在dialog div

    错误代码:

    <div id="dialog" title="Attente de téléchargement">
      <p>Le fichier est en cours de préparation, le téléchargement devrait commencer sous peu.</p>
      <div id="progressbar"></div>
    </div>
    

    对隐藏元素应用任何更改都会反映出来。所以最好将进度条移到dialog div 之外。

    更正的代码:

    <div id="dialog" title="Attente de téléchargement">
       <p>Le fichier est en cours de préparation, le téléchargement devrait commencer sous peu.</p>
    </div>
    <div id="progressbar"></div>
    

    快乐编码:)

    【讨论】:

    • 这行不通,因为我需要对话框中的进度条。此外,我首先尝试仅使用进度条并显示隐藏它(没有任何对话框),结果是一样的。
    • @WizLiz: 你能创建一个 jsfiddle,让我检查一下吗。jsfiddle.net
    • @WizLiz:我创建了 jsfiddle,jsfiddle.net/dreamweiver/DU63h/5。我可以看到你没有为进度条提供任何值来显示加载。
    • 是的,我知道,我正在使用 value: false 所以它显示为 jqueryui.com/progressbar/#indeterminate
    • @WizLiz:我可以看到,您使用的 jquery ui lib 存在一些问题,您的代码没有问题。检查这里,jsfiddle.net/dreamweiver/DU63h/16
    猜你喜欢
    • 1970-01-01
    • 2014-06-27
    • 2011-06-30
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    相关资源
    最近更新 更多