Javascript zClip don';t工作-多个拷贝到剪贴板JS

Javascript zClip don';t工作-多个拷贝到剪贴板JS,javascript,jquery,class,zclip,Javascript,Jquery,Class,Zclip,我试图复制到剪贴板按钮,但我不知道为什么我做不到。 我用ajax加载页面,所以当我将鼠标移到按钮上时,我调用一个函数将zclip添加到按钮上。但当我点击它时,什么都没有发生。 这是我的密码: JS: 您的示例中有一个错误,至少在提供的内容中是这样。在小提琴中尝试它会导致您的鼠标盖函数未定义 我假设您的目的是在他们单击按钮时将数据复制到剪贴板,并在触发鼠标悬停事件时设置剪贴板,对吗?如果是这样的话,最好的办法就是为此创建一个事件,将其委托给button类。这样,它就不会在每次元素悬停时继续为与选择

我试图复制到剪贴板按钮,但我不知道为什么我做不到。 我用ajax加载页面,所以当我将鼠标移到按钮上时,我调用一个函数将zclip添加到按钮上。但当我点击它时,什么都没有发生。 这是我的密码: JS:


您的示例中有一个错误,至少在提供的内容中是这样。在小提琴中尝试它会导致您的
鼠标盖
函数未定义

我假设您的目的是在他们单击按钮时将数据复制到剪贴板,并在触发
鼠标悬停
事件时设置剪贴板,对吗?如果是这样的话,最好的办法就是为此创建一个事件,将其委托给button类。这样,它就不会在每次元素悬停时继续为与选择器匹配的所有元素配置剪贴板插件

下面是一个代码示例,但我不相信您可以将SWF路径作为外部资源包含在fiddle中,因此它不能完全正常工作。因此,我将代码的一个版本放在一起,我觉得很接近。请试一试

JSFiddle:


我无法让它在我的服务器上运行,我从zclips网站下载了ZeroClipboard.swf,无法运行。我注意到zclips网站上的swf并不是他们用于示例的那个。因此,我创建了一个指向的超链接,并单击“将链接另存为”,将其大小与我最初下载的链接进行比较,结果发现它更大。因此,我把上面链接中的新链接放到了我的服务器上,它工作得非常好


我想如果你直接从zclips网站的下载链接下载swf,这是你的问题,因为这是我的问题。尝试将我的链接保存为文件,然后将其上载到您的服务器。

到底是什么问题?您是否在控制台中遇到错误,或者在将鼠标悬停在按钮上方后无法单击按钮?@GeorgeKormaris我在控制台中没有错误。当我点击按钮时,我得到了我的测试日志,但是当我点击它时,zclip什么也不做,当我点击它时,什么都没有发生感谢你的帮助。但它仍然不起作用。我在服务器上使用swf的内部版本。但是,当我单击按钮时,什么也没有发生。您应该开始标准调试,以了解它的运行距离、调用的内容等。是否触发了
mouseover
事件?$btn`变量是jQuery实例吗?使用Chrome,在你的源代码中添加一些断点,并确定什么东西不能被调用。真的不知道为什么人们不投票支持这个。回答得很好!谢谢!
<script type="text/javascript" src="<?php echo JS_DIR?>zclip.min.js"></script>
<script type="text/javascript">
    function mouseOver(){
        $('.copyMails').each(function (k,n) {
            console.log("test");
            var copyMails = $(this);
            $(this).zclip({
                path: '<?php echo JS_DIR?>ZeroClipboard.swf',
                copy: function () {
                    var val = $(copyMails).attr('data-clipboard-text'); 
                    return val;
                },
                afterCopy: function () { console.log($(copyMails).data('clipboard-text') + " was copied to clipboard"); }
          });
        });
    }
</script>
<button onmouseover="mouseOver()" data-clipboard-text="<?php echo implode(',', $emails); ?>" class="copyMails" title="Copier les adresses emails">
    Copier les adresses emails
</button>
$(function () {
    $(document).on("mouseover", ".copyMails", function (evt) {
       var $btn = $(this);
       $btn.zclip({
            path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
            copy: $btn.data("clipboard-text"),
            afterCopy: function () {
                   console.log($btn.data('clipboard-text') + " was copied to clipboard");
            }
        });
    });
  });