【问题标题】:Impromptu and Instances即兴和实例
【发布时间】:2023-03-27 21:35:01
【问题描述】:

我遇到了即兴和实例的问题。我有两个即兴的实例,所以当我调用关闭第一个时,另一个也关闭。

有没有办法说关闭一个而不关闭另一个?

【问题讨论】:

    标签: jquery impromptu


    【解决方案1】:

    所以我猜你正在使用 jQuery.prompt.close() ?

    我从来没有使用过即兴,但在我看来它并不意味着支持同时打开的多个实例。您可以通过查看来源来了解更多信息。

    http://trentrichardson.com/Impromptu/scripts/jquery-impromptu.3.1.js

    就个人而言,我建议您切换到设计更好的提示系统,但如果您真的想继续使用它,则必须手动关闭它们。这是 .close() 调用的内部结构

    $('#'+ $.prompt.currentPrefix +'box').fadeOut('fast',function(){
      $(this).remove();
    });
    

    currentPrefix 等于:

    $.prompt( 'test', { prefix: 'the_prefix' } );
    $.prompt( 'test', { prefix: 'the_prefix2' } );
    

    因此,如果您想将两个实例分开,您只需要使用两个单独的前缀,然后手动关闭它们,如下所示:

    $('#the_prefixbox').fadeOut('fast',function(){
      $(this).remove();
    });
    $('#the_prefix2box').fadeOut('fast',function(){
      $(this).remove();
    });
    

    【讨论】:

    • 您有更好的提示系统推荐吗?我喜欢 Impromptu 的干净外观。
    【解决方案2】:

    我在上面尝试了 BBonifield 的解决方案,但它对我不起作用。也许我做错了。我的情况要求我关闭当前显示的任何提示,以便显示下一个提示。为此,我使用了以下行:

    $(".jqibox").remove();
    

    这将立即破坏当前提示。

    【讨论】:

      【解决方案3】:

      http://trentrichardson.com/Impromptu/

      即兴4.2

      我尝试了 BBonifield 提供的代码,但仍然没有得到想要的结果。两个提示都会关闭,或者第一个提示不会关闭(取决于执行顺序)。问题仍然是前面建议的前缀,但 ID 选择器不起作用。我不得不使用这个类。

      $('.the_prefixbox').fadeOut('fast',function(){
        $(this).remove();
      });
      $('.the_prefix2box').fadeOut('fast',function(){
        $(this).remove();
      });
      

      此外,如果您使用默认前缀以外的前缀,则需要将所有 'jqi' 实例替换为 jquery-impromptu.css 中的前缀。

      【讨论】:

        猜你喜欢
        • 2012-04-10
        • 2011-07-24
        • 2012-08-22
        • 1970-01-01
        • 2012-11-18
        • 2011-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多