J’utilise une boîte de dialog que je ferme lorsqu’un utilisateur clique n’importe où sur la page et attend cette boîte de dialog.
Voici mon code:
$('body').on('click','.ui-widget-overlay',function() { $('#myRateSettingsPopup').dialog('close'); });
En quelque sorte, cela renvoie une erreur:
$ (…). sur n’est pas une fonction
Quel est le problème avec mon code?
J’utilise jquery-1.6.1.min.js, mais je ne peux pas le mettre à jour avec la dernière version. Je suis liée.
Y a-t-un autre moyen de faire ça ?
La méthode on a été introduite dans jQuery version 1.7.
Je pense que vous devez mettre à jour votre bibliothèque jQuery vers la version la plus récente.
Sinon, vous pouvez utiliser bind :
$( ".ui-widget-overlay" ).bind( "click", function(e) { $('#myRateSettingsPopup').dialog('close'); e.stopPropagation(); });
Le remplacement de .on () dans jQuery> 1.4.2 est delegate ()
$('body').delegate('.ui-widget-overlay', 'click', function () { $('#myRateSettingsPopup').dialog('close'); });
$( ".close" ).bind( "click", function(e) { $('#popup1').hide(); e.stopPropagation(); });
jquery-1.7 jqueryui / 1.8.2 perfect.
ou votre superposition
$( ".YOUR OVERLAY" ).bind( "click", function(e) { $('#YOUR POPUP').hide(); e.stopPropagation(); });
Comme jquery 1.6.1 ne prend pas en charge, vous pouvez utiliser live
$('body').live('click','.ui-widget-overlay',function(event) { event.stopPropagation(); $('#myRateSettingsPopup').dialog('close'); });
Essayez en live
au lieu de on
un problème de version jquery
$('body').live('click','.ui-widget-overlay',function() { $('#myRateSettingsPopup').dialog('close'); });