gpt4 book ai didi

jquery - Zeroclipboard 多个元素

转载 作者:行者123 更新时间:2023-12-01 00:37:34 27 4
gpt4 key购买 nike

我在代码中创建多个 Zeroclipboard 实例时遇到问题,每个实例在调用后都会启动一个弹出窗口。

<a class="xxx" href="popup.url.php" ><span >FRSDE3RD</a>
<a class="xxx" href="popup.url2.php" ><span >FRSDE3RD2</a>
<a class="xxx" href="popup.url3.php" ><span >FRSDE3RD3</a>
$(document).ready(function(){
ZeroClipboard.setMoviePath( 'path/to/swf/ZeroClipboard.swf' );
// setup single ZeroClipboard object for all our elements
clip = new ZeroClipboard.Client();
clip.setHandCursor( true );

// assign a common mouseover function for all elements using jQuery
$('a.xxx').mouseover( function() {
// set the clip text to our innerHTML
var url = $(this).attr("href");
var code = $(this).children('span').html();
clip.setText( $(this).children('span').html() );//this.innerHTML );

clip.glue(this);
clip.addEventListener('onMouseDown', function(){
clip.reposition(this);
clip.setText( code );
});

clip.addEventListener('onComplete', function(){
clip.reposition(this);
popUp(url);
});


});
});

function popUp(URL)
{
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1,width=1024,height=768,left = 328,top = 141');");
}

我成功生成了复制到剪贴板的功能,但如果我使用 onMouseUp、onComplete 事件来触发弹出功能,它要么像 4-5 个弹出窗口一样触发,要么根本不触发。

附注我尝试改编 How to load an Ajax response into clipboard using jQuery and ZeroClipboard? 中的解决方案而不是 ajax 调用,只需复制到剪贴板,并在完成午餐时弹出一个弹出窗口......正如我所说,这对我不起作用。

在启用 flashblocker 的情况下,我还发现每次滚动 CODE 标签时都会在同一位置创建一个新的 flash,因此这可能是为什么我单击时会弹出 3-4 个弹出窗口的原因它。如果我滚动更多,就会出现更多弹出窗口。有没有办法阻止 Flash 在同一位置创建或在推出时销毁?

最佳答案

经过更多研究,我找到了解决这个问题的方法:

$("a.xxx").each(function() {
//Create a new clipboard client
var clip = new ZeroClipboard.Client();
clip.setHandCursor( true );

//Glue the clipboard client to the last td in each row
clip.glue(this);

var url = $(this).attr("href");
//Grab the text from the parent row of the icon
var code = $(this).children('span').html();
clip.setText(code);

//Add a complete event to let the user know the text was copied
clip.addEventListener('complete', function(client, text) {
//alert("Copied text to clipboard:\n" + text);
popUp(url);
});
});

如果其他人遇到这个问题,这就是解决方案。

关于jquery - Zeroclipboard 多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2153246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com