在jQuery UI对话框按钮的单击事件中使用zClip

3

我想在jQuery UI对话框按钮中使用jQuery zClip插件,但我不知道如何适应这种情况。有谁可以帮助我吗?

提前感谢您!

    $.ajax({
        url: '/music/lyrics/' + hash,
        success: function (data) {
            data = jQuery.parseJSON(data);
            $('#dialog-modal').html(data.lyrics);
            $('#dialog:ui-dialog').dialog('destroy');
            $('#dialog-modal').dialog({
                modal: true,
                resizable: false,
                title: 'Lyric: ' + data.song,
                width: 500,
                height: 400,
                buttons: {
                    'Copy' : function () {
                         // use zClip to copy $('#dialog-modal').text() here
                     }
                }
            });
        },
        error: function (msg) {
            alert(msg);
        }
    });
2个回答

3
我会忽略对话框按钮通常处理操作的方式,而是单独使用 zClip 处理操作的方式。类似这样:

$.ajax({
        url: '/music/lyrics/' + hash,
        success: function (data) {
            data = jQuery.parseJSON(data);
            $('#dialog-modal').html(data.lyrics);
            $('#dialog:ui-dialog').dialog('destroy');
            $('#dialog-modal').dialog({
                modal: true,
                resizable: false,
                title: 'Lyric: ' + data.song,
                width: 500,
                height: 400,
                buttons: {
                    'Copy' : function () { return true; }
                }
            });
            $('#dialog-modal ui-button:contains(Copy)').zclip({
                path:'../whatever/ZeroClipboard.swf',
                copy:$('#dialog-modal').text()
            });
        },
        error: function (msg) {
            alert(msg);
        }
    });

1
假设您正在使用jQuery 1.8+,您可以以不同的方式指定按钮并为它们添加ID:
$("#mydialog").dialog({
  ...
  buttons : [{
    text: "Close",
    click: function() {
      $(this).dialog("close");
    }
  },{
    text: "Copy to clipboard",
    id: "copyButton", // here is your ID
    click : function() {
      alert("Sorry, copy not supported in your browser, please copy manually.");
    }
  }]
  ...
});

//after .dialog("open");
$("#copyButton").zclip({
  ...
  clickAfter: false // dont propagate click: will suppress unsupported warning
  ...
});

我唯一的问题是似乎只能在可见按钮上安装zclip,所以我在打开对话框的按钮处理程序中调用zclip()。

谢谢,这帮了我很大的忙(在我意识到我在document.ready上绑定zclip而不是在对话框打开时)。 - Gordon Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接