zclip在bootstrap模式下不起作用

时间:2013-01-11 15:31:03

标签: javascript twitter-bootstrap modal-dialog zclip

我正在使用zclip页面提供的干净示例代码:

$('a#copy-dynamic').zclip({
    path:'js/ZeroClipboard.swf',
    copy:function(){return $('input#dynamic').val();}
});

这是HTML:

<a href="#" id="copy-dynamic" class="">Click here to copy the value of this input:</a>
<input type="text" id="dynamic" value="Insert any text here." onfocus="if(this.value=='Insert any text here.'){this.value=''}" onblur="if(this.value==''){this.value='Insert any text here.'}">

如果HTML在引导程序主页中,它可以正常工作,但如果我在引导程序模式窗口内移动html(即在模态的div元素内),它就会停止工作。

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:3)

我遇到了与zclip和bootstrap模式相同的问题。我应用的修复是双重的:

  • 将zclip附加到模态'show'函数内的元素。
  • 在将zclip附加到元素
  • 之前添加250毫秒的延迟

这样可以将zclip正确放置在模态中。如果模态中有多个选项卡,它也可以使用。

<强> HTML

<div id="myModal" class="modal hide fade">
    <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h3>Modal header</h3>
    </div>
    <div class="modal-body">
        <a class="btn" href="#" id="modal_body_button">Copy Undo Config To Clipboard</a>
        <p>One fine body…</p>
    </div>
    <div class="modal-footer">
        <a href="#" class="btn">Close</a>
        <a href="#" class="btn btn-primary">Save changes</a>
    </div>
</div>

<强>的JavaScript

$('#myModal').on('show', function () {
    $("#modal_body_button").delay(250).queue(function(next){
        $(this).zclip({
            path: "/static/javascript/ZeroClipboard.swf",
            copy: "copied text OK!"
        });
        next();
    });
});

答案 1 :(得分:2)

在上面的示例中,也可以使用on('shown')而不是on('show')事件,当模态完全显示时调用。这有助于防止使用诸如延迟(250)之类的脏黑客