Autor |
Nachricht |
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Di 20.07.2010 15:19
Titel [jQuery] - Elemente automatisch anzeigen |
|
|
Hallo zusammen,
ich bin daran mittels jQuery Elemente zu bilden wenn bestimmte Klassen auf bestimmten Elementen angewendet worden sind.
Derzeit funktioniert das nur beim Mouseover dieser bestimmten Elemente, brauche es aber so das es von alleine Angezeigt wird. Also nachdem die Seite geladen wurde.
Das HTML MarkUp schaut in etwa so aus
Code: |
<div id="example_horizontal" class="countune-holder" style="overflow-x: auto; overflow-y: hidden;">
<table class="scrollpane">
<tbody>
<tr>
<td offset="0" len="1" class="batch"><div class="stripe blue"><div class="w20 purple bottom h30" title="0"> </div></div></td>
<td offset="0" len="1" class="batch"><div class="start stripe blue"><div class="w20 purple bottom h30" title="1"> </div></div></td>
<td offset="0" len="1" class="batch"><div class="stripe blue"><div class="w20 purple bottom h30" title="2"> </div></div></td>
</tr>
</tbody>
</table>
</div>
|
Das JavaScript
Code: |
$(document).ready(function(){
$('<div id="pos-result" style="position:absolute;top:200px;left:0;height:200px;width:100%;z-index:1000;"></div>').appendTo('#example_horizontal');
/* -- T1 -- */
$('#example_horizontal .scrollpane tr td', document.body).mouseover(function (e) {
var offset = $(this).offset();
e.stopPropagation();
if ($(this).find('div').is('.start')) {
$('#pos-result').append('<div class="info-box" style="position:absolute;left:' + offset.left + 'px;top:0;width:100px;height:100px;background:#fff;opacity:0.7;">Info - Pos:' + offset.left + '</div>');
}
});
$("#example_horizontal .scrollpane td", document.body).mouseout(function (e) {
$("#pos-result > div").css("display","none");
});
/* -- T1 -- */
});
|
Ich hatte es schon mittels $('foo').each.function() probiert, aber das klappt leider nicht.
Hat mir jemand eine Idee/Tipp wie ich das lösen kann?
Falls ich mich schlecht ausgedrückt habe, bitte nachfragen.
Zuletzt bearbeitet von Kash am Di 20.07.2010 15:39, insgesamt 2-mal bearbeitet
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Di 20.07.2010 16:21
Titel
|
|
|
Code: |
$(document).ready(function(){
$exampleHorizontal = $('#example_horizontal');
$posResult = $('<div />',{
position : "absolute",
top : "200px",
left : "0",
height : "200px",
width : "100%",
z-index : "1000"
})
.appendTo($exampleHorizontal);
$scrollpaneDivs = $exampeHorizontal.find('.scrollpane tr td div');
$scrollpaneTDsLength = $scrollPaneTDs.length;
var isWorking = false;
setInterval (function () {
if(isWorking) { // last interval function not finished
return false;
}
isWorking = true;
tmpHTML = false;
for(i=0,I=scrollpaneTDsLength;i<I;i++) {
$currentDiv = $(scrollpaneDivs[i]);
if($currentDiv.hasClass('start') {
$currentDivOffset = $currentDiv.offset();
tmpHTML += "<div class="info-box" style="position: absolute;left:' + $currentDivOffset.left + 'px;top:0;width:100px;height:100px;background:#fff; opacity:0.7;">Info - Pos:' + $currentDivOffset.left + '</div>"
}
}
if(tmpHTML) {
$posResult.html($posResult.html() + tmpHTML);
}
isWorking = false;
}, 500);
});
|
(ungetestet)
Zuletzt bearbeitet von sahnemuh am Di 20.07.2010 16:23, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Di 20.07.2010 16:35
Titel
|
|
|
Vielen Dank für den Ansatz ich schau mir das genau an.
Folgendes meldet die Konsole
Zitat: | missing : after property id
z-index : "1000"\n |
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Di 20.07.2010 16:40
Titel
|
|
|
oops. bitte zIndex statt z-index schreiben.
|
|
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Di 20.07.2010 17:28
Titel
|
|
|
Hi Sahnemuh,
folgend das korrigierte Script
Code: | $(document).ready(function(){
$exampleHorizontal = $('#example_horizontal');
$posResult = $('<div />',{
position : "absolute",
top : "200px",
left : "0",
height : "200px",
width : "100%",
zIndex : "1000"
}).appendTo($exampleHorizontal);
$scrollpaneDivs = $exampleHorizontal.find('.scrollpane tr td div');
$scrollpaneDivsLength = $scrollpaneDivs.length;
var isWorking = false;
setInterval (function () {
if(isWorking) { // last interval function not finished
return false;
}
isWorking = true;
tmpHTML = false;
for(i=0,I=scrollpaneDivsLength;i<I;i++) {
$currentDiv = $(scrollpaneDivs[i]);
if($currentDiv.hasClass('start')) {
$currentDivOffset = $currentDiv.offset();
tmpHTML += '<div class="info-box" style="position:absolute;left:' + $currentDivOffset.left + 'px;top:0;width:100px;height:100px;background:#fff;opacity:0.7;">Info - Pos:' + $currentDivOffset.left + '</div>'
}
}
if(tmpHTML) {
$posResult.html($posResult.html() + tmpHTML);
}
isWorking = false;
}, 500);
}); |
Bisher werden die Infoboxen noch nicht angezeigt. Und unter der Tabelle wird ein leeres Div erzeugt.
Die Konsole gibt noch den Fehler
Zitat: | Fehler: scrollpaneDivsLength is not defined |
aus.
// Den letzten Fehler konnte ich selbst ausmachen
Code: | for(i=0,I=$scrollpaneDivsLength;i<I;i++) { |
Die Konsole gibt jetzt keinen Fehler mehr an.
Der Div unter der Tabelle schaut leider immer noch so aus
Zuletzt bearbeitet von Kash am Di 20.07.2010 17:41, insgesamt 1-mal bearbeitet
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
Verfasst Di 20.07.2010 17:42
Titel
|
|
|
asdf.
flüchtigkeit ick hör' dir trapsen.
Code: | $(document).ready(function(){
$exampleHorizontal = $('#example_horizontal');
$posResult = $('<div />',{
position : "absolute",
top : "200px",
left : "0",
height : "200px",
width : "100%",
zIndex : "1000"
}).appendTo($exampleHorizontal);
$scrollpaneDivs = $exampleHorizontal.find('.scrollpane tr td div');
scrollpaneDivsLength = $scrollpaneDivs.length;
var isWorking = false;
setInterval (function () {
if(isWorking) { // last interval function not finished
return false;
}
isWorking = true;
tmpHTML = false;
for(i=0,I=scrollpaneDivsLength;i<I;i++) {
$currentDiv = $($scrollpaneDivs[i]);
if($currentDiv.hasClass('start')) {
$currentDivOffset = $currentDiv.offset();
tmpHTML += '<div class="info-box" style="position:absolute;left:' + $currentDivOffset.left + 'px;top:0;width:100px;height:100px;background:#fff;opacity:0.7;">Info - Pos:' + $currentDivOffset.left + '</div>'
}
}
if(tmpHTML) {
$posResult.html($posResult.html() + tmpHTML);
}
isWorking = false;
}, 500);
}); |
|
|
|
|
|
Kash
Threadersteller
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Di 20.07.2010 17:54
Titel
|
|
|
Bringt leider keinen Unterschied
Was hattest Du geändert? Wenn ich die Scripte vergleiche kann ich keinen Unterschied erkennen.
|
|
|
|
|
sahnemuh
Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht:
|
|
|
|
|
|
|
|
Ähnliche Themen |
Web Application - Elemente Jquery
jQuery - folgende Elemente ansprechen
jQuery bei .clone() entstehen unerwünschte Elemente
Slideout Tip automatisch öffnen [jquery]
jQuery Menü soll beim Aufklappen aktuelle Kategorie anzeigen
onclick für bestimmte Elemente automatisch "vorbelegen"
|
|