3

我正在使用 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 元素内),它会停止工作。

我怎样才能让它工作?

4

2 回答 2

3

我对 zclip 和 bootstrap 模态有同样的问题。我应用的修复是双重的:

  • 将 zclip 附加到模态的“显示”功能内的元素。
  • 在将 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…&lt;/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();
    });
});
于 2013-02-05T20:54:30.273 回答
2

In example above can also use on('shown') instead of on('show') event which calls when modal completely showed. This helps to prevent using dirty hacks like delay(250)

于 2013-04-10T13:07:17.217 回答