2011-07-11 8 views
3

jQuery UIダイアログボタンでjQuery zClipプラグインを使用したいが、この場合にどのように適応するのか分からない。誰でも私を助けることができますか?jQuery UIダイアログボックスのクリックイベントで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); 
     } 
    }); 

答えて

3

通常のダイアログボタンがアクションを処理するのを無視し、zClipがアクションを処理する方法を別に使用します。このような何か:

$("#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 
    ... 
}); 

私が持っている唯一の問題は、それが思われることです:

$.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を追加する別の方法であなたのボタンをspecifiyすることができます表示可能なボタンにはzclipしかマウントできないので、ダイアログを開くボタンのハンドラ内でzclip()を呼び出します。

+0

ありがとうございます。ダイアログが開かれたときではなく) –

関連する問題