Der Versuch, ZClip innerhalb Knockout zu verwenden

stimmen
0

Ich versuche , eine Website mit dynamisch geladenen Text zu erstellen, mit Knockoutjs, dass ich der Benutzer möchte in der Lage zu klicken und es in ihre Zwischenablage kopiert. Ich verwende für die Kopierfunktion in die Zwischenablage kopieren Zclip und ich habe es funktioniert , wenn der Text statisch geladen wird.

In meinem Viewmodel habe ich eine Funktion , copyFunctiondie wie folgt aussieht:

self.copyFunction = function(html) {
    console.log(html);
    $('#copytext').zclip({
        path: http://www.steamdev.com/zclip/js/ZeroClipboard.swf,
        copy: function() {
            return $('#copytext').text();
        }
    });
}

Dies wird jedes Mal wenn eines der Elemente genannt wird, auf der Web-Seite angeklickt.

Und in meinem HTML habe ich diese Art von Inhalt dynamisch für jedes Element erzeugt wird, die ich habe:

<div class=row data-bind=foreach: itemList>
        <div class=col-xs-3 text-center>
            <a data-bind=click: $parent.copyFunction, text: text href=# id=copytext></a>
        </div>
</div>

Ich weiß , dass meine copyFunctionnicht korrekt ist , aber ich weiß nicht , was ich tun muss, um es für mich zu bekommen zu arbeiten. Im Idealfall würde Ich mag die ZClip zum anwenden <a>Tag , das es nennt, aber ich habe keine Ahnung , wie dies zu erreichen.

Die einzige Möglichkeit, die ich verwendet habe ZClip vor ist das bekannteste Beispiel: eine ID in Ihrem HTML-Einrichtung und mit einem jQuery Event-Handler. Allerdings kann ich das auch nicht, weil ich bin neu in JS zu arbeiten, und ich bin mir ziemlich sicher, dass die ID nicht vollständig geladen ist, wenn meine jQuery-Funktion ist, und somit ist es nicht auf das DOM verbindet richtig .

Wenn Sie mir einen Einblick gewinnen helfen könnten, wie ich diese Arbeit bekommen würde ich es sehr schätzen.

Veröffentlicht am 17/02/2015 um 09:14
vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Mein Problem wird gelöst in dem , indem eventals Parameter an die Funktion.

Hier ist, wie die Funktion sieht jetzt:

self.copyFunction = function(html, event) {
    var target = event.target;
    $(target).zclip({
        path: "http://www.steamdev.com/zclip/js/ZeroClipboard.swf",
        copy: function() {
            return $(target).text();    
        }
    });
}

Eine weitere Marotte das ich habe, ist die Zclip nur funktioniert, wenn ich die Website auf meinen Server hochladen, aber nicht von meinem localhost. Hat jemand eine Ahnung, warum dies passieren könnte?

Beantwortet am 17/02/2015 um 10:06
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more