0

クロスブラウザでこれを実行できない場合は、コメントをいただければ幸いです。

私が達成しようとしているのは、たとえば、このようなページ上の複数の「クリップボードにコピー」リンクです...

<a href="#" data-copy="<?php echo $original[0]; ?>" class="copy">Copy Original Link</a>
<a href="#" data-copy="<?php echo $medium[0]; ?>" class="copy">Copy Medium Link</a>
<a href="#" data-copy="<?php echo $web[0]; ?>" class="copy">Copy Web Link</a>


何かを機能させるのにあまり運がないだけです。


私はzClipを使用しており、以下のようにjQueryonClickとデータ属性を使用して起動しようとしています。

しかし、それを機能させることはできません。フィドルを参照してください

var copyText = 0;

$("a.copy").on('click', function () {

  var copyText = $(this).attr('data-copy');
  return false;

}).each(function () {

  $(this).zclip({

    path: 'http://zeroclipboard.googlecode.com/svn-history/r10/trunk/ZeroClipboard.swf',
    copy: copyText,
    beforeCopy: function () {

    },
    afterCopy: function () {

      alert(copyText + " has been copied!");

    }

  });

});


zClipjqueryプラグインが使用されている私の新しいフィドルをここで参照してください。

http://jsfiddle.net/Vr4Ky/5/


提案を事前に感謝します。

4

2 に答える 2

4

これは、あなたがやろうとしていることを行う更新されたデモです:

この(同じ)HTMLを使用:

<a href="#" data-copy="http://test.one.com/" class="copy">Copy Original Link</a>
<br />
<a href="#" data-copy="http://test.two.com/" class="copy">Copy Medium Link</a>
<br />
<a href="#" data-copy="http://test.three.com/" class="copy">Copy Web Link</a>

このスクリプトは動作するはずです:

$("a.copy").on('click', function (e) {
  e.preventDefault();
}).each(function () {
  $(this).zclip({
    path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
    copy: function() {
      return $(this).data('copy');
    }
  });
});

これが私がしたことです。最初alertに経由で追加していafterCopyた は実際にはデフォルトであるため、そのためのコードを追加する必要はありません。また、属性には jQuery の関数data-copyを介してアクセスする必要があります。最後に、SWF 参照を JavaScript と同じホストに配置しました (これは、SWF のセキュリティ コードによっては必要ないかもしれませんが、jsfiddle を機能させるために必要なようでした。data

于 2013-01-09T19:16:16.733 に答える
1

Jason Sperskeソリューションを使用して、ブートストラップ内で使用した場合の問題を修正するための回避策を見つけました。

これは、関数をブートストラップドロップダウンで機能させる方法です。

$('.btn-group').addClass('open');
$("a.copy").on('click', function (e) {
  e.preventDefault();
}).each(function () {
  $(this).zclip({
    path: 'http://www.steamdev.com/zclip/js/ZeroClipboard.swf',
    copy: function() {
      return $(this).data('copy');
    }
  });
});
$('.btn-group').removeClass('open');

次に、このcssも追加して、リスト要素の外側でフラッシュファイルの絶対divの位置を停止する必要があります。

.dropdown-menu li {
    position: relative;
}

作業フィドルを参照してください。http://jsfiddle.net/Vr4Ky/27/

于 2013-01-12T21:32:21.253 に答える