2014-10-15 3 views
0

У меня есть код на моем заголовке для создания сом всплывающегоJQuery возвращает неопределенное значение ошибки

$(document).ready(function() { 
    //Lorsque vous cliquez sur un lien de la classe poplight et que le href commence par # 
    $('a.poplight[href^=#]').click(function() { 
     var popID = $(this).attr('rel'); //Trouver la pop-up correspondante 
     var popURL = $(this).attr('href'); //Retrouver la largeur dans le href 

     //Récupérer les variables depuis le lien 
     var query= popURL.split('?'); 
     var dim= query[1].split('&'); 
     var popWidth = dim[0].split('=')[1]; //La première valeur du lien 

     //Faire apparaitre la pop-up et ajouter le bouton de fermeture 
     $('#' + popID).fadeIn().css({ 
      'width': Number(popWidth) 
     }) 
      .prepend('<a href="#" class="close"><img src="images/close_pop.png" class="btn_close" title="Fermer" alt="Fermer" /></a>'); 

     //Récupération du margin, qui permettra de centrer la fenêtre - on ajuste de 80px en conformité avec le CSS 
     var popMargTop = ($('#' + popID).height() + 80)/2; 
     var popMargLeft = ($('#' + popID).width() + 80)/2; 

     //On affecte le margin 
     $('#' + popID).css({ 
      'margin-top' : -popMargTop, 
      'margin-left' : -popMargLeft 
     }); 

     //Effet fade-in du fond opaque 
     $('body').append('<div id="fade"></div>'); //Ajout du fond opaque noir 
     //Apparition du fond - .css({'filter' : 'alpha(opacity=80)'}) pour corriger les bogues de IE 
     $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); 

     return false; 
    }); 

    //Fermeture de la pop-up et du fond 
    $('a.close, #fade').live('click', function() { //Au clic sur le bouton ou sur le calque... 
     $('#fade , .popup_block').fadeOut(function() { 
      $('#fade, a.close').remove(); //...ils disparaissent ensemble 
     }); 
     return false; 
    });  
}); 

Я также использовать JQuery на голове моего документа

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 

беда в том, что он вернется к меня ошибка

Uncaught TypeError: undefined is not a function 

именно на той части, где я shpould нажмите для закрытия всплывающего окна

поэтому я могу открыть его, но не закрыть.

Anykind of help будет очень благодарен.

ответ

4

.live() устарел в jQuery 1.7 и удален в 1.9. Вы должны использовать .on() вместо

$(document).on('click', 'a.close, #fade', function() { //Au clic sur le bouton ou sur le calque... 
    $('#fade , .popup_block').fadeOut(function() { 
     $('#fade, a.close').remove(); //...ils disparaissent ensemble 
    }); 
    return false; 
}); 
0

live удаляется из JQuery 1.9, и вы используете JQuery 1.10.2 => Ошибка.

Вы можете использовать на() обрабатывать или использовать делегат использовать делегирование событий.

, Нажмите, чтобы обрабатывать события напрямую.

на

$(document).on('click', 'a.close, #fade', function() { //Au clic sur le bouton ou sur le calque... 

}); 

делегат

$(document).delegate('a.close, #fade','click', function() { //Au clic sur le bouton ou sur le calque... 

    }); 

нажмите

$('a.close, #fade').click(function(){}); 

б ind

$('a.close, #fade').bind("click",function(){}); 

Надеюсь, это поможет вам.

Смежные вопросы