我對事件中的數據傳遞有點困惑。我得到的結果不一致,我想了解爲什麼$(this).val()
沒有通過,但如果我先聲明它的確如此。我明白爲什麼最後的方法有效,但不是爲什麼它不返回任何內容/未定義。有人能幫我解決這個問題嗎?在事件中傳遞數據 - 做什麼和不該做什麼
編輯:的obj
是<input id="test" value="myvalue" type="text">
obj = $('#test');
tellme = function(data){
alert(data);
}
obj.on('click',function(e){ tellme($(this).val()) }); //How I usually pass things
tellmeagain = function(event){
alert(event.data.val);
}
obj.on('click',{val:'test'},tellmeagain); //works
obj.on('click',{val:this.value},tellmeagain); //undefined
obj.on('click',{val:$(this).val()},tellmeagain); //returns nothing
value = obj.val()
obj.on('click',{val:value},tellmeagain); //works
你能詳細說明嗎?爲什麼'$(this)|| this'不是我的元素?它使用第一個函數報告值。 –
因爲在你寫'{val:this.value}'的範圍內,'this'沒有理由成爲你的元素。它是什麼,我們無法從你展示的代碼中看出來。 –
啊,檢查我包含在OP中的小提琴。這是一個輸入。 –