我的标题上有一个用于创建som弹出窗口的代码
$(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
正好在我点击关闭弹出窗口的部分
所以我可以打开但不能关闭它。
非常感谢任何帮助。
答案 0 :(得分: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;
});
答案 1 :(得分:0)
live
已从jQuery 1.9中删除,您使用的是jQuery 1.10.2 =&gt;错误。
您可以使用 on()来处理或使用委托来使用事件委派。
使用绑定,点击直接处理事件。
在强>
$(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(){});
<强>结合强>
$('a.close, #fade').bind("click",function(){});
希望它能帮到你。