-1

クリップボード機能に取り組んでいますが、マウス イベント関連の問題に直面しています。

以下のコード スニペットでは、クリップボード機能は と を削除label tagし た場合にのみ機能しstyle="display:none" class="hide"ます。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Copy to Clipboard with ZeroClipboard, Flash 10 and jQuery</title>
    <link href="_assets/css/Style.css" rel="stylesheet" type="text/css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
    <script src="_assets/js/ZeroClipboard.js" type="text/javascript"></script>
    <script type="text/javascript">
        function myfunc2() {
            var selectedobj = document.getElementById('texter');
            if(selectedobj.className=='hide'){  //check if classname is hide 
                selectedobj.style.display = "block";
                selectedobj.readOnly=true;
                selectedobj.className ='show';
            } else {
                selectedobj.style.display = "none";
                selectedobj.className ='hide';
            }
        }
    </script>    
    <script type="text/javascript">
        jQuery(document).ready(function(){
            var clip = new ZeroClipboard.Client();
            clip.setText('');  
            jQuery('#copy-button').click(function(){
                clip.setText(jQuery('#texter').val());
            });
        });
        $(document).ready(function () {
            var clip = new ZeroClipboard.Client();
            clip.setText(''); // will be set later on mouseDown
            clip.addEventListener('mouseDown', function (client) {
                // set text to copy here
                clip.setText(jQuery('#texter').val());    
                // alert("mouse down"); 
            });
            clip.glue('copy-button');
        });
    </script>
</head>
<body>
    <label  onmouseover="myfunc2()">Click here</label> 
    <textarea name="texter" id="texter"  style="display:none" class="hide"   readonly>sdfdsfsdfgdfdfg</textarea>
    <input type="button" value="Copy to clipboard" id="copy-button" />
</body>

4

1 に答える 1

0

試す

 $(document).ready(function () {
        var clip = new ZeroClipboard.Client();
        clip.setText('');  
        $('#copy-button').click(function(){
            clip.setText($('#texter').val());
        }); 


        clip.mousedown(function (client) {
            // set text to copy here
            clip.setText($('#texter').val());    
            // alert("mouse down"); 
        });
        clip.glue('copy-button');
    });

2 つの .ready 関数を結合し、2 番目の ZeroClipboard.Client() インスタンスは不要になったため削除しました。また、mousedown イベントを別の方法でバインドしました。詳細については、jQuery mousedown() docを参照してください。

jquery の新しいバージョンを導入して、これを変更します。http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js へ; http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js

于 2012-12-01T00:21:41.867 に答える