J'utilise donc la fonction AJAX de jQuery pour lire du code XML pour moi et cela a très bien fonctionné. Mais maintenant, j'essaie de manipuler la propriété d'affichage de 4 div différents dynamiquement générées lorsque mouseup est déclenché à partir d'éléments d'option. La taille et les x/y des divs sont déterminés par XML et analysés.jQuery .append() ne fonctionne pas dans IE, Safari et Chrome
Mon problème réside dans le fait que ces divs ne sont pas générés ou n'apparaissent pas dans IE, Safari et Chrome. Dans Firefox et Opera, ils fonctionnent. J'utilise .append() de jQuery pour créer les divs puis la fonction .css() pour les manipuler. En regardant dans les outils de développement de Chrome, je vois que la propriété css changée dans le script est remplacée par la propriété dans la feuille de style. Des correctifs?
Divs créé ici:
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;
fonctions mouseup qui changent la propriété d'affichage:
$('#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');
});
Quoi qu'il en soit, vous pouvez découper ce fragment de code en un simple exemple de ce qui cause le problème? Ou au moins fournir des informations sur les ID/classes exactes qui causent le problème? Toute mise en forme que vous pouvez faire pour nettoyer cet extrait serait également utile. À votre santé. – malonso
D'accord, coupé autant que je peux aller. –
'$ ('#' + tVal)' ugh. Quelqu'un at-il déjà entendu parler de 'document.getElementById (tval)'? L'id-getter jQuery est si répandu sur le Web ... mais il est si lent et sophistiqué. –