【问题标题】:Toggle dialog not working in jQuery. How to show animation dialog in button click?切换对话框在 jQuery 中不起作用。如何在按钮单击中显示动画对话框?
【发布时间】:2018-12-08 17:31:16
【问题描述】:

我有一个按钮可以成功切换页面上的许多元素,但它们都低于起始页的高度,导致用户无法清楚地获得他们已成功切换的反馈。我想使用一个 jQuery 对话框,当我成功打开其他元素时,它会打开。

所以我做了这个(jQuery):

 window.onload = function () {
    $("#toggleAllSSSP").click(function () {
      $(".SSSP").toggle('fast');
      $( "#toggleSuccess" ).dialog({
        autoOpen: false,
        show: {
          effect: "blind",
          duration: 1000
        },
        hide: {
          effect: "explode",
          duration: 1000
        }
      });
      $( "#toggleSuccess" ).dialog( "open" );
    }); 
};

With inspiration from this page.

这是 HTML

<button id="toggleAllSSSP">Show 4 levels of principles Principles (Default=3)</button>
<div id="toggleSuccess" title="Toggle success">
    <p>You're now displaying 4 levels of Principles!</p>
</div>

我尝试将 css 添加到 #toggleSuccess,结果元素在 DOM 流中正常显示。我知道我可以使用 window.alert 但更喜欢这个解决方案,谢谢。

【问题讨论】:

标签: javascript jquery html toggle jquery-ui-dialog


【解决方案1】:

请单独初始化您的对话框(不在“点击”事件处理程序中)。另外请确保您已将 jquery 和 jquery.ui 包含到您的脚本中(+ jquery.ui.css)。希望对您有所帮助。

$("#toggleAllSSSP").click(function () {
  $(".SSSP").toggle('fast'); 
  $("#toggleSuccess").dialog( "open" );
}); 
    
$("#toggleSuccess").dialog({
  autoOpen: false,
  show: {
    effect: "blind",
    duration: 1000
  },
  hide: {
    effect: "explode",
    duration: 1000
  }
});
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<button id="toggleAllSSSP">Show 4 levels of principles Principles (Default=3)</button>
<div id="toggleSuccess" title="Toggle success">
  <p>You're now displaying 4 levels of Principles!</p>
</div>

【讨论】:

  • 像这样链接所有内容:&lt;link rel="stylesheet" type="text/css" href="../../stylesheets/IntPrinCSS/BoostOdds.css"&gt; &lt;script src="/jquery/jquery.min.js"&gt;&lt;/script&gt; &lt;link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"&gt; &lt;script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="../../javascripts/toggleP.js"&gt;&lt;/script&gt; 但它仍然无法正常工作。我也改了jQuery代码,没有成功,感谢帮助。
  • 会不会是jquery ui css p { display:block; }有问题?
  • 此时,其他元素的切换也停止工作。 :| .
  • @Ronnlidd,我不知道你代码的完整结构。不确定如何帮助您处理所有切换元素。我刚刚尝试回答您的主要问题。
  • 是的,我明白了,我不知道为什么它不起作用,在我看来应该是这样......不过还是谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多