-1

入力がクリックされたときに値をコピーするために JavaScript を使用しています。これはうまくいきます。通常は JavaScript アラートを実行しますが、クエリ フェージング div を使用したいと思います。

jquery または javascript を別々のスクリプトで実行すると、正常に動作しますが、参加するとすぐに失敗します。

これは、コピーには onMouseOver を使用しているが、フェード アラートには入力クリック イベントを使用しているためだと思います。

これらをマージする方法はありますか?

<script language="JavaScript">
        function toClip(me,vals) {
                var clip = new ZeroClipboard.Client();
                clip.setHandCursor( true );
                clip.setText(vals);
                clip.glue(me);
        }
</script>

<script  type="text/javascript">
    $(document).ready(function() {
$('input').click(function() {
    $messageCont = $('<div class="message_cont">');
    $message = $('<div>DONE</div>').hide();
    $messageCont.append($message);
    $('body').prepend($messageCont);
    $messageCont.css({
    "left" : $(this).offset().left,
    "top" : $(this).offset().top
    });
    $message.fadeIn(200, function() {
        setTimeout(function(){
            $messageCont.fadeOut();
            //code to clean up container
        }, 1500)
    })
 })
});
$messageCont.css({
    "left" : $(this).offset().left,
    "top" : $(this).offset().top
});
</script>

これは次の方法で呼び出されます。

<div class='copy' onmouseOver="toClip(this,'$val')"><input type="button" value="Copy"/></div>

ありがとう :)

4月15日更新:

Javascriptの代わりにjqueryを使用して、これを機能させました。

<input type="button" id="copy_button" data-clipboard-text="Copy Me!" Value="Click ME">
<script src="js/ZeroClipboard.js"></script>
<script>
var clip = new ZeroClipboard( document.getElementById("copy_button"), {
  moviePath: "js/ZeroClipboard.swf"
} );

clip.on( 'complete', function(client, args) {
var $message = $('<div class="message">DONE</div>').hide();
var $messageCont = $('<div class="message_cont" />').append($message).prependTo('body');
$messageCont.css({
   "left" : $(this).offset().left,
   "top" : $(this).offset().top
}).find("div.message").fadeIn(200).delay(1500).fadeOut(function() {
        });
   } );
</script>

私が持っている唯一の問題は、ボタンでしか機能しないことです。一緒に働きたいと思うことがたくさんあります。誰でもそれを解決する方法を知っていますか?

ありがとう :)

4

1 に答える 1