3 Stimmen

Probleme mit ZeroClipboard beim Hinzufügen eines Tooltips

Ich versuche, Zeroclipboard zu verwenden http://code.google.com/p/zeroclipboard/ um Dinge in die Zwischenablage zu kopieren und einen Tooltip hinzuzufügen, wenn die Maus über den Blitz fährt. aber es scheint nicht zu funktionieren.

mein html-Code:

<div rel="<?php echo $url;?>" class="cp-code">copied code</div>
<div class="test" style="display: none; border: 1px solid #ccc; padding: 8px;">click copy,test,test</div>

Mein Js-Code: Ich habe die Jquery-Bibliothek hinzugefügt.

ZeroClipboard.setMoviePath("http://example.com/js/ZeroClipboard.swf");
var clip = null;
var url = '';

function init() {
    clip = new ZeroClipboard.Client();
    clip.setHandCursor( true );

    $('.cp-code').mouseover( function() {
        clip.setText(this.innerHTML);
             $('test').style.display = 'block';
        if (clip.div) {
            clip.receiveEvent('mouseout', null);
            clip.reposition(this);
        } else {
                        clip.glue(this);
                }
        clip.receiveEvent('mouseover', null);
        url = $(this).attr('rel');
    });

    clip.addEventListener('mouseUp', function(client) {
        window.open(url);
    });
  clip.addEventListener('mouseOut', function (client) {
 $('test').style.display = 'none';
   });

    }

$(document).ready(function() {
    init();
});

1voto

mccow002 Punkte 6445

Warum wollen Sie, dass es beim Mouseover passiert? Ich bin nicht sicher, ob ZeroClipboard das unterstützt.

Ich habe eine Weile gebraucht, um das herauszufinden, als ich ZeroClipboard zum ersten Mal benutzt habe, weil die Implementierung ein bisschen anders ist als normal. Sie können jedoch nicht einfach clip.setText aufrufen. Sie müssen die Clip-Implementierung an das Steuerelement "kleben". Und Sie können auch nicht das jQuery-Objekt verwenden, sondern müssen es mit dem eigentlichen DOM-Objekt verbinden.

So zum Beispiel:

var cpCode = $('.cp-code');
cpCode.each(function()
{
    clip = new ZeroClipboard.Client(); //you can set the movie path here too
    clip.glue($(this)[0]); // The [0] accesses the actual DOM object rather than the jQuery object
    clip.setText($(this).html();
});

Also jetzt, wenn Sie auf das Element klicken, wird der Text kopiert werden.ich sehe, wo Ihr tun einige andere Sachen in Ihrem Beispiel, aber unabhängig davon, ich denke, das Element Ihre fehlende ist das Kleben des DOM-Objekts auf die Instanz von Clip, anstatt Aufruf clip.setText auf Ihre jQuery Mouseover-Ereignis.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X