$ (…) .On n’est pas une fonction – Erreur jQuery

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'); });