$().live不是一个函数-JavaScript/jQuery

$().live不是一个函数-JavaScript/jQuery,javascript,jquery,function,popup,Javascript,Jquery,Function,Popup,在Firefox中,我突然从firebug那里得到了这样一条信息: $('a.close, #fade').live is not a function 事实上,当我点击图像库并弹出显示时。我无法摆脱它。由于此错误消息,单击事件从未注册 以下是脚本: $('a.poplight[href^=#]').click(function() { var popID = $(this).attr('rel'); var popURL = $(this)

在Firefox中,我突然从firebug那里得到了这样一条信息:

$('a.close, #fade').live is not a function
事实上,当我点击图像库并弹出显示时。我无法摆脱它。由于此错误消息,单击事件从未注册

以下是脚本:

        $('a.poplight[href^=#]').click(function() {
        var popID = $(this).attr('rel');  
        var popURL = $(this).attr('href');  

        var query= popURL.split('?');
        var dim= query[1].split('&');
        var popWidth = dim[0].split('=')[1];  

        //Fade in the Popup and add close button

        var div_popup = document.createElement('div');
        div_popup.setAttribute('id',popID);
        div_popup.setAttribute('class','popup_block');
        document.body.appendChild(div_popup);

        $(div_popup).fadeIn().css({ 'width': Number( popWidth ) }).prepend('<a href="#" class="close"><img src="close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a> <a href="thumbBg' + $(this).attr('rel').substring($(this).attr('rel').lastIndexOf('p') + 1,$(this).attr('rel').length) + '"></a><p>The Human Diet: By Rene Endara</p>');

        var popMargTop = ($('#' + popID).height() + 80) / 2;
        var popMargLeft = ($('#' + popID).width() + 80) / 2;

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

        $('body').append('<div id="fade"></div>');  
        $('#fade').css({'filter' : 'alpha(opacity=80)'}).fadeIn(); 
        return false;
    });

    //Close Popups and Fade Layer
    $('a.close, #fade').live('click', function() {  
        $('#fade , .popup_block').fadeOut(function() {
            $('#fade, a.close').remove();  //fade them both out
        });
        return false;
    });
$('a.poplight[href^=#]')。单击(函数(){
var popID=$(this.attr('rel');
var popURL=$(this.attr('href');
var query=popURL.split(“?”);
var dim=query[1]。拆分('&');
var popWidth=dim[0]。拆分('=')[1];
//淡入弹出窗口并添加关闭按钮
var div_popup=document.createElement('div');
div_popup.setAttribute('id',popID);
div_popup.setAttribute('class','popup_block');
document.body.appendChild(div_弹出窗口);
$(div_popup).fadeIn().css({'width':Number(popWidth)}).prepend(“人类饮食:由Rene Endara编写”);
var popMargTop=($('#'+popID).height()+80)/2;
var popMargLeft=($('#'+popID).width()+80)/2;
$('#'+popID).css({
“页边距顶部”:-popMargTop,
“左边距”:-popMargLeft
});
$('body')。追加('');
$('#fade').css({'filter':'alpha(不透明度=80)}).fadeIn();
返回false;
});
//关闭弹出窗口和淡入层
$('a.close,#fade').live('click',function(){
$('#淡入,.popup#u块')。淡出(函数(){
$(“#淡入,a.close”).remove();//将它们淡出
});
返回false;
});
标记:

    <ul class="thumb">
    <li><a href="#?w=500" rel="popup1" class="poplight"><img src="images/thumb1.jpg" alt="" /></a></li>
    <li><a href="#?w=500" rel="popup2" class="poplight"><img src="images/thumb2.jpg" alt="" /></a></li>
    <li><a href="#?w=500" rel="popup3" class="poplight"><img src="images/thumb3.jpg" alt="" /></a></li>
    <li><a href="#?w=500" rel="popup4" class="poplight"><img src="images/thumb4.jpg" alt="" /></a></li>
   </ul>
谢谢你的回复

是在jQuery 1.3中引入的,因此它不适用于早期版本

.live()
在jQuery 1.7以后的版本中也被弃用

备选方案是
.on()
.delegate()

请参阅有关如何迁移现有代码的相关问题。

由于自jQuery 1.7+以来,
.live()
已被弃用,因此必须使用
.on()
.delegate()


请参阅有关如何迁移现有代码的相关问题。

Tente usar
.bind
no lugar de
.live


尝试使用
.bind
而不是
.live

对于使用>=v1.9的任何其他人,请参见此处有关折旧的内容:

在wp includes\js\thickbox\thickbox.js中找到此函数并更改函数:

function tb_init(domChunk){
  jQuery(domChunk).live('click', tb_click);
}
将“on”替换为“live”方法,如下所示:

function tb_init(domChunk){
    jQuery(domChunk).on('click',tb_click);
}

如果您使用的是Nivo Slider,jquery.Nivo.Slider.js将需要进行类似的更改。

您使用的是哪个版本的jquery?很好,请致电@Marko。直到jQuery 1.4才引入live。这根本不是真的,
.live(eventType,handler)
是在1.3中添加的,请参阅。也许他使用的版本比那个版本旧…好吧,不知怎的,我用的是1.2版的东西。所以它肯定不被支持。我通常直接指向internet,但知道某些jquery方法何时受支持和何时不受支持绝对是件好事,因为这让我发疯。@Evan,我的意思是1.3…我的错误。这很重要,因为它在1.9中被完全删除。这对于2013年出现此问题的几乎所有人来说都是正确的答案。。。