Empêcher le scroll au chargement ajax avec la class "noscroll" pour les boutons
En complément de la révision r18894, on pourrait vérifier la présence de la classe "noscroll" sur les boutons ajax pour déclencher de défilement ou non.
dans spip/prive/javascript/ajaxCallback.js ` 729 on remplacerait
jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){ var leform = this; var url = jQuery(this).attr('action').split('#'); jQuery(this) .prepend(""+(url[1]?"":"")) .ajaxForm({ beforeSubmit: function(){ jQuery(blocfrag).animateLoading().positionner(false); }, onAjaxLoad:false, success: function(c){ jQuery.spip.on_ajax_loaded(blocfrag,c); jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd }/*, iframe: jQuery.browser.msie*/ }) .addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload });
par
jQuery('form.bouton_action_post.ajax', this).not('.noajax,.bind-ajax').each(function(){ var leform = this; var url = jQuery(this).attr('action').split('#'); var scrollwhensubmit = !jQuery(this).is('.noscroll'); jQuery(this) .prepend(""+(url[1]?"":"")) .ajaxForm({ beforeSubmit: function(){ jQuery(blocfrag).animateLoading() if (scrollwhensubmit) jQuery(blocfrag).positionner(false); }, onAjaxLoad:false, success: function(c){ jQuery.spip.on_ajax_loaded(blocfrag,c); jQuery.spip.preloaded_urls = {}; // on vide le cache des urls car on a fait une action en bdd }/*, iframe: jQuery.browser.msie*/ }) .addClass('bind-ajax'); // previent qu'on n'ajaxera pas deux fois le meme formulaire en cas de ajaxload });