jQuery zClip委托需要单击两次

时间:2012-04-18 05:07:06

标签: jquery events zclip

我想为ajax加载的结果启用zClip(json数据,转换为html片段)...但是有一个问题,因为zClip自己附加了click事件...

    $('ul.detail_list').delegate("a.clipboard", "click", function(e){
                        e.preventDefault();
                        $(this).zclip({
                            path:'images/ZeroClipboard.swf',
                            copy:$(this).text(),
                            afterCopy:function(){
                                window.open('....');
                            },
                            clickAfter: false
                        });

我必须点击两次才能触发Zclip。否则,此代码正常工作(如果我执行alertconsole.log而不是每次都触发zClip)...

那么如何附加Zclip来防止这种情况呢?

更新:忘记提及ul.detail_list是json响应后生成的html片段。

html代码段(从json响应动态生成):

    <ul class="detail_list">
    <li><a href="#" class="clipboard">text to copy 1</a></li>
<li><a href="#" class="clipboard">text to copy 2</a></li>
    ...
    </ul>

谢谢!

1 个答案:

答案 0 :(得分:0)

不确定它是否会有所帮助,我会尝试这样:

$("body").undelegate('ul.detail_list', "click",  function(eventUndelegated) {
    $('ul.detail_list').delegate("a.clipboard", "click", function(eventDelegated){
        eventDelegated.preventDefault();
        eventDelegated.stopPropagation();
        $(this).zclip({
            path:'images/ZeroClipboard.swf',
            copy:$(this).text(),
            afterCopy:function(){
                window.open('....');
            },
            clickAfter: false
        });
    });

});