Also verwende ich jQuery's AJAX-Funktion, um etwas XML für mich zu lesen, und es hat gut funktioniert. Aber jetzt versuche ich, die Anzeigeeigenschaft von 4 verschiedenen dynamisch generierten Divs zu manipulieren, wenn mouseup von Optionselementen ausgelöst wird. Die Größe und x/y der divs werden durch die XML bestimmt und durch geparst.jQuery .append() funktioniert nicht in IE, Safari und Chrome
Mein Problem liegt in der Tatsache, dass diese Divs entweder nicht generiert werden oder nur nicht in IE, Safari und Chrome angezeigt werden. In Firefox und Opera funktionieren sie. Ich verwende jAQuerys .append(), um die divs und dann die .css() -Funktion zu erstellen, um sie zu bearbeiten. In den Entwicklerwerkzeugen von Chrome sehe ich, dass die CSS-Eigenschaft, die im Skript geändert wird, von der Eigenschaft im Stylesheet überschrieben wird. Irgendwelche Korrekturen?
Divs hier erstellt:
case "dynamic":
var n = name;
switch(portion){
case "stub":
$('.ticket').append("<div class='stubEditable' id='"+n+"' title='stub'></div>");
break;
case "body":
$('.ticket').append("<div class='bodyEditable' id='"+n+"' title='body'></div>");
break;
}
break;
case "static":
var n = name;
switch(portion){
case "stub":
$('.ticket').append("<div class='stubEditable' id='"+n+"' title='stub'></div>");
break;
case "body":
$('.ticket').append("<div class='bodyEditable' id='"+n+"' title='body'></div>");
break;
}
break;
mouseup Funktionen, die die Anzeigeeigenschaften ändern:
$('#StubTemplates').find('.ddindent').mouseup(function(){
var tVal = $(this).val();
var tTitle = $(this).attr('title');
if(!stubActive){
$('.stubEditable').css('display', 'none');
$('#'+tVal).css('display', 'block');
stubActive = true;
}else{
$('.stubEditable').css('display', 'none');
$('#'+tVal).css('display', 'block');
stubActive = false;
}
});
$('#StubTemplates').find('#stubTempNone').mouseup(function(){
$('.stubEditable').css('display', 'none');
});
$('#BodyTemplates').find('.ddindent').mouseup(function(){
var tVal = $(this).val();
var tTitle = $(this).attr('title');
if(!bodyActive){
$('.bodyEditable').css('display', 'none');
$('#'+tVal).css('display', 'block');
bodyActive = true;
}else{
$('.bodyEditable').css('display', 'none');
$('#'+tVal).css('display', 'block');
bodyActive = false;
}
});
$('#BodyTemplates').find('#bodyTempNone').mouseup(function(){
$('.bodyEditable').css('display', 'none');
});
Wie auch immer, dass Sie diesen Code-Snippet auf ein bloßes Beispiel von dem, was das Problem verursacht, abschneiden können? Oder zumindest einige Informationen über die genauen IDs/Klassen, die das Problem verursachen? Jede Formatierung, die Sie vornehmen können, um dieses Snippet zu bereinigen, wäre ebenfalls nützlich. Prost. – malonso
Okay, ich habe es so weit wie möglich getrimmt. –
'$ ('#' + tVal)' ugh. Hat jemand schon einmal von 'document.getElementById (tval)' gehört? Der jQuery-Hash-anhängende ID-Getter ist im Web so verbreitet ... aber er ist so langsam und kludgy. –