2013-03-01 48 views
1

工作需要有一个更新版本的帮助,这是不使用jQuery 1.9旧图像互换脚本不能与最新的jQuery

$(function(){ 
    $(".img-swap").live('click', function() { 
    if ($(this).attr("class") == "img-swap") { 
     this.src = this.src.replace("_off","_on"); 
    } else { 
     this.src = this.src.replace("_on","_off"); 
    } 
    $(this).toggleClass("on"); 
    }); 
}); 
+0

'.live()'已弃用,请使用'.on()'。 – SeinopSys 2013-03-01 23:34:02

+0

真棒谢谢! – user2125457 2013-03-02 00:13:45

回答

1

Live工作的贬值,我相信。改为使用on。这在jQuery文档中右侧靠近live页面的位置明确说明。以我的经验总是一个好主意,不要使用最新的jQuery,如果从谷歌拉,但选择一个版本,并坚持。否则,当jQuery更新时,您的代码可能会中断而不会发出警告从经验谈起。

+0

真棒谢谢 – user2125457 2013-03-02 00:14:19

0

http://api.jquery.com/live/

的.live方法已在jQuery的版本1.9被移除。使用.on()代替将元素绑定到事件。您的代码如下所示:

$(function(){ 
    $(".img-swap").on('click', function() { 
    if ($(this).attr("class") == "img-swap") { 
     this.src = this.src.replace("_off","_on"); 
    } else { 
     this.src = this.src.replace("_on","_off"); 
    } 
    $(this).toggleClass("on"); 
    }); 
}); 
+0

你不需要做'.on'的委托变体,否则它的行为就像'.bind'而不是'.live'。像'('#container')。on('click','.img-swap',function(){...})'我想? – IMSoP 2013-03-01 23:36:07