首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Knockout中使用ZClip

尝试在Knockout中使用ZClip
EN

Stack Overflow用户
提问于 2015-02-17 11:14:24
回答 1查看 120关注 0票数 0

我试图创建一个使用Knockoutjs动态加载文本的网站,我希望用户能够点击并将其复制到他们的剪贴板上。对于复制到剪贴板的功能,我使用兹卡姆,在静态加载文本时让它工作。

在我的ViewModel中,我有一个函数copyFunction,如下所示:

代码语言:javascript
复制
self.copyFunction = function(html) {
    console.log(html);
    $('#copytext').zclip({
        path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
        copy: function() {
            return $('#copytext').text();
        }
    });
}

只要在网页上单击其中一项,就会调用此选项。

在我的HTML中,我为我拥有的每一项动态生成了这类内容:

代码语言:javascript
复制
<div class="row" data-bind="foreach: itemList">
        <div class="col-xs-3 text-center">
            <a data-bind="click: $parent.copyFunction, text: text" href="#" id="copytext"></a>
        </div>
</div>

我知道我的copyFunction是不正确的,但我不知道我需要做什么才能让它为我工作。理想情况下,我希望将ZClip应用于调用它的<a>标记,但我不知道如何实现这一点。

我以前使用过ZClip的唯一方法是最著名的示例:在HTML中设置id和使用jQuery事件处理程序。但是,我也不能让它工作,因为我对JS还不熟悉,而且我非常肯定,当我的jQuery函数是的时候,id并没有被完全加载,因此它不能正确地链接到DOM。

如果你能帮我了解一下我是如何工作的,我会非常感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-17 12:06:40

通过将event作为参数传递给函数,解决了我的问题。

下面是这个函数现在的样子:

代码语言:javascript
复制
self.copyFunction = function(html, event) {
    var target = event.target;
    $(target).zclip({
        path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
        copy: function() {
            return $(target).text();    
        }
    });
}

我的另一个怪癖是只有当我把网站上传到我的服务器上,而不是从我的本地主机上的时候,Z剪辑才能工作。有人知道为什么会发生这种事吗?

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

https://stackoverflow.com/questions/28560694

复制
相关文章

相似问题

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