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.


InsOp
Beiträge: 6

PN schreiben
Profil ansehen
User ist offline

Onclick innerhalb eines tables?

Link zur Antwort auf "Onclick innerhalb eines tables?" von InsOp InsOp, am Friday den 18.11.2011 um 12:10:07

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:

 
HTML
 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:)


Konstantin Knöll
Beiträge: 193

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von Konstantin Knöll Konstantin Knöll, am Saturday den 19.11.2011 um 14:11:51

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


InsOp
Beiträge: 6

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von InsOp InsOp, am Monday den 21.11.2011 um 09:04:51

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 ;)

Insgesamt 1 mal bearbeitet, zuletzt am 21.11.2011 um 10:55:07

Chris Wiese
Beiträge: 34

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von Chris Wiese Chris Wiese, am Tuesday den 22.11.2011 um 11:22:56

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:

 
JavaScript
 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:

 
HTML
1
<a id="copy-description" onClick="$('a.copy').zclip('hide');" href="#">Hier klicken um zu kopieren</a>

einfach:

 
HTML
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.


InsOp
Beiträge: 6

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von InsOp InsOp, am Tuesday den 22.11.2011 um 14:05:18

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:

 
HTML
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:

 
HTML
 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]


Konstantin Knöll
Beiträge: 193

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von Konstantin Knöll Konstantin Knöll, am Tuesday den 22.11.2011 um 15:19:27

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.


Chris Wiese
Beiträge: 34

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von Chris Wiese Chris Wiese, am Tuesday den 22.11.2011 um 16:07:04

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):

 
HTML
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.


InsOp
Beiträge: 6

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "Onclick innerhalb eines tables?" von InsOp InsOp, am Tuesday den 22.11.2011 um 17:26:59

Jap das isses:

folgender Code:

 
HTML
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 :)