Je suis en train de définir des comportements par défaut pour mes Dialogs jQuery comme les suivantes:Quelle est la meilleure pratique pour ajouter une fonction par défaut aux événements d'ouverture/fermeture de jQuery Dialog?
(function($) {
/**
* Overriding default options
**/
$.ui.dialog.defaults.bgiframe = true;
$.ui.dialog.defaults.open = function() {
if ($('.ui-widget-overlay').length == 0) return;
if ($.browser.msie) {
// scrollbar fix for IE
$('html').css('overflow-y','hidden');
$('html').css('overflow-x','hidden');
} else {
// disable scrollbar for other browsers
$('body').css('overflow','hidden');
}
};
$.ui.dialog.defaults.beforeclose = function(event, ui) {
if ($('.ui-widget-overlay').length == 0) return;
if ($.browser.msie) {
// scrollbar fix for IE
$('html').css('overflow-y','auto');
$('html').css('overflow-x','auto');
} else {
// disable scrollbar for other browsers
$('body').css('overflow','auto');
}
};
})(jQuery);
Les travaux ci-dessus quand j'ai aucune fonction personnalisée ouverte/beforeclose spécifié lors de la boîte de dialogue est créé. Je me demande donc quelle est la meilleure pratique pour ajouter ces fonctionnalités dans toutes mes boîtes de dialogue, tout en préservant la possibilité de spécifier les fonctions open/beforeclose.
Merci pour la réponse! Je suis d'accord que j'ai besoin d'en savoir plus sur la façon dont cela peut être fait correctement. Cependant, je n'arrive pas à trouver un moyen de "prolonger" correctement le comportement/les fonctions par défaut pour toutes les boîtes de dialogue créées par la suite. L'exemple que vous avez donné sur comment appliquer ces paramètres "après" la boîte de dialogue a été construit, mais je voudrais rendre ces fonctions disponibles par défaut pour toutes les boîtes de dialogue sur mon site Web. Cela vous dérange-t-il de me donner des indications sur la façon dont cela peut être fait correctement? – BlueFox
Désolé devait faire 2 commentaires. En ce qui concerne le CSS, je ne suis pas tout à fait sûr de savoir comment cela peut être fait avec CSS, car je ne ferais que désactiver les barres de défilement lorsqu'il s'agit d'une boîte de dialogue modale. Je suis certainement intéressé à connaître la bonne façon de mettre en œuvre cela aussi bien! – BlueFox
Est-ce que la simple résolution de la position de la boîte de dialogue serait une solution? Ensuite, il planera avec la page même si l'utilisateur fait défiler. –