首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zClip -如何在一次点击按钮后添加、触发、删除zClip?

zClip -如何在一次点击按钮后添加、触发、删除zClip?
EN

Stack Overflow用户
提问于 2012-10-15 13:34:18
回答 1查看 2.8K关注 0票数 4

.zclip()附加到按钮,然后启动它,然后删除.zclip()的最好方法是什么?这听起来很简单,但我不能让它合作。我有一个有许多按钮的页面,一些可以直接访问,一些按钮可以通过各种手风琴和选项卡访问。许多复制目标都包含动态数据,其中一些是通过ajax插入的。此外,许多部分都是可折叠的。如果关闭该部分时,.zclip()附加到按钮的flash覆盖显示,则会导致动画出现毛刺。

我试着用几种不同的方法来解决这个问题:

附加.zclip()所有按钮元素,然后每隔一段时间刷新页面。虽然它确实捕获了动态数据,但它的性能很糟糕。

根据mouseentermouseleave事件以及mouseovermouseout附加和删除.zclip()。当以这种方式附加时,所有事件每秒都会触发多次,导致多个flash overlay被绑定到一个按钮。

基于.hover().hoverIntent().zclip()的附加和删除。虽然这比上面的尝试表现得更好,并捕获了动态数据,但事件的触发方式仍然很多。我已经尝试在父节上执行.hover(),并将.zclip()附加到该节中的所有按钮。这是可行的,但它的性能很糟糕。

我相信这个问题有一个简单的解决方案,但我就是想不出来。我可以通过.click()绑定.zclip(),它会附加到一个按钮上。我可以通过.zclip()afterFunction参数删除它。我想不出如何将额外的click事件传递给按钮,并在附加.zclip()后触发它。它可以工作,但必须单击该按钮两次。一次激活它,一次发射并移除它。我在想,也许额外的click事件需要发送到flash overlay,而不是再次发送到按钮。也许有人能给我指出正确的方向?

zClip Homepage

jsFiddle of this code:

代码语言:javascript
复制
<div id='copy'>Test</div>
<button>Click Here To Copy The Div Above!</button>
<span id='success'>Success!</span>
代码语言:javascript
复制
#copy{
    height: 100px;
    width: 200px;
    padding: 3px;
    margin-bottom: 5px;
    border: 1px solid black;
    border-radius: 6px;
}
#success{
    color: rgba(84,240,84,1);
}
代码语言:javascript
复制
$(document).ready(function() {
    var copySuccessHide = function(){
        $( "#success" ).css({opacity: 0.0, visibility: "visible"});
    };
    copySuccessHide();/*hide the success indicator*/
    var copyData = $("#copy").text();/*get data from copy target*/
    var afterCopyFunction = function(){
        $("#copy").effect( "highlight" , {color : "rgba(230,255,230,1)" }, 1000 )
        $("#success").effect( "pulsate", "fast", copySuccessHide );
        $("button").zclip('remove');/*remove zclip*/
        };

    $("button").click(function () {/*bind zclip to the button on click*/
        $("button").zclip({
                path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
                copy: copyData,
                afterCopy: afterCopyFunction,
                clickAfter: false
            });
    });
});
EN

回答 1

Stack Overflow用户

发布于 2013-01-25 01:20:10

我同意上面所有的评论,但有一件事你可以试一试……

代码语言:javascript
复制
 $("button").click(function () {/*bind zclip to the button on click*/
        $(this).zclip({
                path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
                copy: copyData,
                afterCopy: afterCopyFunction,
                clickAfter: false
            });
    });

通过使用$(This)...,您只能将当前单击的按钮绑定到zclip构造函数。当你使用$(“button”)时,每次点击一个按钮,你就会在页面上的每个按钮上调用zclip构造函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12889815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档