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 に答える