Jquery绑定'复制'事件

时间:2014-03-06 10:14:51

标签: javascript jquery twitter-bootstrap

我正在使用bootstrap的popover组件来显示一些要由用户复制的文本。我需要在用户复制文本后使popover消失。

到目前为止,我曾尝试过:

$('.popover-content input').select().bind('copy', function () {
    $('#Link').popover('hide');
});

问题是复制事件似乎在更新剪贴板内容之前运行绑定函数。这意味着当实际触发副本时,popover DOM元素已与文本字段一起被销毁。

我曾想过将popover css设置为display: none;,但这并不是一种非常整洁或优雅的方式来执行此操作。

有没有人知道是否有“复制”事件或任何其他方式这样做是跨浏览器。

2 个答案:

答案 0 :(得分:0)

使用unbind()方法:

$('.popover-content input').select().bind('copy', function () {
    $('#Link').popover('hide');
    $(this).unbind('copy');
});

答案 1 :(得分:0)

我找到了我要找的东西Underscore#defer允许你推迟一个动作并允许调用它的函数继续运行并在你的延迟函数启动之前完成执行。最好把它想象成一个非阻塞的{{ 1}}。

以下是完成的代码:

setTimeout