2012-11-22 102 views
33

有沒有辦法通過jQuery的trigger方法將數據傳遞給change事件?使用jQuery觸發事件將數據傳遞給Change事件處理程序?

這裏的問題是click事件觸發上傳菜單。一旦圖像被選中,然而,change事件被觸發。我傳遞給觸發器事件的第二個參數的數據傳遞給click事件,而不是傳遞給change事件。在下面的例子中,data未定義。

觸發影像變化

$('.change_main_image').live('click', function() { 
    $('input[name=photo].change_uploader').trigger('click', ["some string"]); 
}); 

事件處理程序

$('input[name=photo].change_uploader').live('change', function (e, data) { 
    alert(data); // undefined 
    //canvas resize and upload script 
}); 
+0

爲什麼不直接觸發change事件? – PitaJ

+0

是的。 Nevermind – TaylorMac

回答

63

.live()已被棄用。像這樣使用.on()。並且change事件應該被觸發,而不是click

$('.change_main_image').on('click', function() { 
    $('input[name=photo].change_uploader').trigger('change', [{somedata:true}]); 
}); 


$('input[name=photo].change_uploader').on('change', function (e, data) { 
    alert(data.somedata); 
    //canvas resize and upload script 
}); 
+1

是的,它確實有效。謝謝 – TaylorMac

+3

當你需要使用.live()時,因爲該項目是在舊版本的jquery中開發的,並且你的老闆告訴你重構不是一個選項......可悲但不錯。 – Maykonn

相關問題