.zclip()
附加到按钮,然后触发它,然后删除的最佳方法是什么.zclip()
?这听起来很简单,但我不能让它合作。我有一个包含许多按钮的页面,有些可以直接访问,有些按钮可以通过各种手风琴和选项卡访问。许多复制目标包含动态数据,其中一些是通过 ajax 插入的。许多部分也是可折叠的。.zclip()
如果在该部分关闭时存在附加到按钮 的 Flash 覆盖,则它会导致动画出现故障。
我试图从几种不同的方式来解决这个问题:
附加.zclip()
所有按钮元素,然后以设定的时间间隔刷新页面。虽然它确实捕获了动态数据,但它的性能很糟糕。
.zclip()
基于mouseenter
和mouseleave
事件以及mouseover
和进行附加和删除mouseout
。以这种方式附加时,所有事件每秒都会触发多次,导致多个 Flash 覆盖绑定到一个按钮。
.zclip()
基于.hover()
和的附加和删除.hoverIntent()
。虽然这比上述尝试表现得更好并捕获了动态数据,但事件的触发方式仍然很稳定。我尝试.hover()
在父部分上做一个并附.zclip()
加到该部分中的所有按钮。这行得通,但它的性能很糟糕。
我相信有一个简单的解决方案,但我就是想不通。.zclip()
我可以通过绑定.click()
,它会附加到一个按钮。我可以.zclip()
通过它的afterFunction
参数删除。我不知道如何将附加click
事件传递给按钮并.zclip()
在其附加后触发。它会起作用,但必须单击该按钮两次。一旦激活它,就会触发并移除它。我在想可能click
需要将附加事件发送到 Flash 叠加层,而不是再次发送到按钮。也许有人可以指出我正确的方向?
<div id='copy'>Test</div>
<button>Click Here To Copy The Div Above!</button>
<span id='success'>Success!</span>
#copy{
height: 100px;
width: 200px;
padding: 3px;
margin-bottom: 5px;
border: 1px solid black;
border-radius: 6px;
}
#success{
color: rgba(84,240,84,1);
}
$(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
});
});
});