Jetzt Mitglied werden
Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.
Forum - Entwicklung
- Markup (HTML, XML, etc.) und CSS
- Skriptsprachen (PHP, Javascript, etc.)
- Datenbanken (SQL)
- CMS und Frameworks
- Flash und ActionScript
Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.
Alle Foren - Übersicht
Portal aktuelle Themen
Design aktuelle Themen
Server aktuelle Themen
- Webhosting und Webspace
- Betriebssysteme (Windows, Linux, etc.)
- Serveradministration
- Überwachung, Sicherheit und Backups
Management aktuelle Themen
Über Webmasterpro.de
Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.
Skriptsprachen (PHP, Javascript, etc.) - Forum
Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.
Diskutieren Sie hier über die serverseitige Skriptsprachen PHP und Python und über dynamische Webseitenerstellung mit Javascript und Ajax.
Onclick innerhalb eines tables?
es geht um: javascript,html,jquery
Heyho,
ich bin neu - habe wenig Wissen über jquery oder javascript, aber schaff es den script oftmals erfolgreich einzubauen ;)
diesmal leider nicht - folgender Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.zclip.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('a#copy-description').zclip({
path:'ZeroClipboard.swf',
copy:$('span#description').text()
// The link with ID "copy-description" will copy
// the text of the paragraph with ID "description"
});
});
</script>
</head>
<body>
<table >
<tr>
<td >
<span id="description">Das wird kopiert</span>
<a id="copy-description" onClick="$('a.copy').zclip('hide');" href="#">Hier klicken um zu kopieren</a>
</td>
</tr>
</table>
</body>
</html>
|
Es handelt sich um eine funktion mit der ich einen text innerhalb eines
span elements (wahlweise auch p oder was weißich) in die Zwischenablage
kopieren kann.
Wie die js dateien aussehn ist hier im Grunde wurst.
Was funktioniert: ist der table nicht da, sondern sind da nur die beiden span/ a elemente, funktioniert alles einwandfrei.
Was nicht funktioniert: Sobald sich diese beidn teile aber in ner table befinden, gehts nichtmehr.
Nun ich vermute dass entweder der javascript im head bereich oder im
body bereich den richtigen pfad zum jeweils andren bereich nid kennt.
Nun weiß ich aber leider nicht wie das syntaxmäßig richtig aussehen
sollte, vorallem weil es sich ja zusätzlich noch um jquery handelt.
wenn mir da jmd kurz helfen könnte wäre das klasse:)
Bin leider nicht ganz so bewandert in JQuery, denke aber das könnte dir helfen.
Direkt bei der initlisierung des Dokumentes (also wenn es fertig geladen ist), lässt du die funktion zum kopieren ausführen.
Bau es doch etwas um und setze einen eventhandler beim event "onclick" auf den gewünschten link und erst dann führst du die funktion aus. zudem solltest du den onclick der direkt im link (im body bereich) ist mit in deine eventHandler funktion packen.
Das könnte dir bereits helfen und hilft dir vor allem auch bei größeren Projekten den Überblick zu wahren.
Grüße
Konstantin
Hey,
vielen dank erstmal für den Vorschlag/deine Hilfe - ich werd ma schauen wie/ob ich das so hinbekomme und nochma bescheid geben sobald ich was hab ;)
edit: ich habs nun aus zeitgründen so gelöst dass ich das a element außerhalb der table gemacht habe - sieht weniger gut aus, aber die funktion ist da (wurde nur für ein internes modul programmiert) - dennoch werde ich den Gelöst flag noch nicht aktivieren, weil es ja immernoch sein kann dass sein jquery mensch hier reinschaut und das problem auf dem ersten blick erspäht und helfen kann ;)
Soweit ich die Syntax des Plugin richtig verstehe brauchst du gar keine click anwendung, die macht das Plugin selbstständig, ich kann das jetzt nicht testen aber das Script sollte so laufen:
1 2 3 4 5 6 7 8 9 10 | Javascript
$(function(){
$("#copy-description").zclip({
path: "js/ZeroClipboard.swf", // muss angepasst werden
copy: function(){
return $('#description').text();
// evtl.: return $('#description').html();
}
});
})
|
Das ist Quatsch:
1 | <a id="copy-description" onClick="$('a.copy').zclip('hide');" href="#">Hier klicken um zu kopieren</a>
|
einfach:
1 2 | <span id="description">Das wird kopiert</span>
<a id="copy-description" href="#">Hier klicken um zu kopieren</a>
|
Das sollte jetzt immer greifen egal ob tabelle oder nicht da die ID's direkt aufgerufen werden.
Ich hab den Code übernommen, und er funktioniert auch soweit (außerhalb einer table) sobald das a-element sich aber wieder innerhalb eines tables befindet funktioniert es nichtmehr
So gehts nicht:
1
2
3
4
5
6
7
8
9 | <table>
<tr>
<td >
<span id="description">asdasdasd</span>
<a id="copy-description" href="#"><img src=copy.png title="In Zwischenabblage"/></a>
</td>
</tr>
</table>
|
So gehts:
1 2 3 4 5 6 7 8 9 10 | <table>
<tr>
<td >
<span id="description">asdasdasd</span>
</td>
</tr>
</table>
<a id="copy-description" href="#"><img src=copy.png title="In Zwischenabblage"/></a>
|
[Das onclick war wirklich unnötig, hab es entfernt - war evtl um nen alert auszugeben, was ich aus dem Code aber schon entfernt hatte]
Was sagt denn die Fehlerkonsole dazu?
Könnte es sein, dass für a in tables generell ein onclickhandler definiert ist, durch ggf. weitere module auf der seite?
ggf. auch mal eine andere verschachtelung versuchen, z.b. in einer liste. aber kann mir nur vorstellen, dass es an der verschachtelung selbst liegt.
Ich habe mir das modul nochmal angeschaut und habe folgendes festgestellt:
das <a> element wird mit dem Flash ausgetauscht und erst der click darauf bewirkt den copy to clipboard.
Ich gehe mal stark davon aus, dass das script funktioniert, jedoch durch die verschachtelung das auslesen der höhe und breite parameter gestört wird und das flash einfach irrgendwo nicht sichtbar platziert wird.
Schau mal ob dein firebug folgende Zeile ausgibt (natürlich mit anderen Werten):
1 | <div class="snippet-clipboard" style="position: absolute; left: 1143px; top: 553px; width: 110px; height: 50px; z-index: 99;"><embed id="ZeroClipboardMovie_1" width="110" align="middle" height="50" wmode="transparent" flashvars="id=1&width=110&height=50" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowfullscreen="false" allowscriptaccess="always" name="ZeroClipboardMovie_1" bgcolor="#ffffff" quality="best" menu="false" loop="false" src="js/ZeroClipboard.swf"></div>
|
Wenn ja läuft das Script korrekt, es hat lediglich probleme beim auslesen/setzen der positionierung.
Jap das isses:
folgender Code:
1 | <div id="zclip-ZeroClipboardMovie_1" class="zclip" style="position: absolute; left: 69px; top: 2px; width: 16px; height: 15px; z-index: 99;"><embed id="ZeroClipboardMovie_1" align="middle" width="16" height="15" wmode="transparent" flashvars="id=1&width=16&height=15" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowfullscreen="false" allowscriptaccess="always" name="ZeroClipboardMovie_1" bgcolor="#ffffff" quality="best" menu="false" loop="false" src="js/ZeroClipboard.swf"></div>
|
da wurde quasi eine div "irgendwohin" plaziert, wenn ich dann hingehe kommt dieses typische "blocken" meines adblockers und bei click auf diese fläche triggert auch der script. Ich muss nun aber gehn, werd mich morgen nochmal in die Stelle des js-codes einlesen, um ggf dort anpassungen vorzunehmen.
Danke an euch beide :) Ich werde es mal als gelöst markieren, bis ich nichmehr weiterkomme :)

