2013-03-01 34 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