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);
        }
    });
4

2 回答 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);
        }
    });
于 2011-07-18T20:17:43.593 回答
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()

于 2011-11-08T22:28:59.767 回答