2013-03-20 108 views
-4

你好,我剛剛編寫一個簡單的代碼,因爲我學的jQuery這是代碼jQuery的活不工作,代碼簡單

$(document).ready(function(){ 
    $('input[type="file"]').live({ 
    change : function(){ 
     alert('ok'); 
    } 
    }); 
}); 

,但它不希望工作是什麼問題?

+3

你使用的是什麼版本的jQuery? '.live()'在1.7中被棄用。 – j08691 2013-03-20 17:33:14

+0

更不用說完全在1.9中刪除了。 – ajp15243 2013-03-20 17:37:30

+0

注意,如果你的文件綁定,你不需要'$(document).ready(' – 2013-03-20 17:50:05

回答

1

現場已被棄用試試這個:

DEMO

$(document).ready(function(){ 
    $(document).on('change','input[type="file"]',function(){ 
     alert('ok'); 
    }); 
}); 
0

.live()因爲jQuery的已被刪除1.9
嘗試使用$('input[type="file"]').change(function() { ... })代替

+2

所以你可能會提出一個替代方案,他? – j0k 2013-03-20 17:35:50

+0

完成了,別生氣:) – Uby 2013-03-20 17:39:00

0

可以使用。對()生活(。 )已棄用。

$(document).ready(function(){ 
$(document).on('change','input[type="file"]',function(){ 
    alert('ok'); 
}); 
}); 
+0

thx我沒有但它並沒有像現實中看到我的後續代碼那樣做同樣的工作$(document).ready(function(){('。duplicated')。on(「click」,function(){} {alert '; ok'); $(this).after(''); }); }); – user2174729 2013-03-20 17:37:52

+0

@ user2174729我更新了我的code.check它一次 – PSR 2013-03-20 17:43:30

1

jQuery的live()documentation狀態:

在jQuery 1.7的,所述.live()方法被棄用。使用.on()連接到事件處理程序 。老版本jQuery的用戶應該優先使用 .delegate(),而不是.live()。

使用on()documentation)綁定您的活動(如果不是動態添加的元素):

$('input[type="file"]').on('change',function(){ 
    //Stuff 
}); 

注:這不正是同樣的事情$('input[type="file"]').change()

如果您使用live()將函數綁定到動態添加的DOM元素,您應該使用on()類似於thi s:

$(document).on('change', 'input[type="file"]', function(){ 
    //Stuff 
}); 
+0

這就是我的意思http://jsfiddle.net/7Ny57/1/每次我點擊按鈕它將apear警報與確定並再次複製buootn當我按它仍然會執行相同的工作 – user2174729 2013-03-20 17:42:32

+0

@ user2174729您的小提琴沒有包含jQuery。 **你的網頁上是否包含了jQuery?**請再次閱讀我的回答,特別是關於**動態添加**元素的部分,並檢查[fiddle](http://jsfiddle.net/bigood/9xjQW/1 /)作爲你的修正 – Bigood 2013-03-20 17:44:55