2014-02-21 58 views
0

爲什麼當我通過jQuery.val('')更改文本輸入的值時,會觸發input事件?

http://jsfiddle.net/EC85C/2/

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/input

+3

只有當直接用戶操作導致更改時,纔會觸發類似更改,模糊,輸入等任何事件 –

+0

即使不是由jQuery解僱。這是您使用的瀏覽器不支持'input'事件 –

+0

您需要觸發該更改:'$('。selector')。trigger('change');'等 –

回答

1

我的猜測是,你正在試圖獲得AngularJS看到你的變化(通過綁定),當你改變你的輸入值(通過jQuery的val方法)?

我一起拋出此琴來說明如何得到這個工作: http://jsfiddle.net/6JTDf/1/

而不是調用trigger(這將創建一個jQuery「事件」),你可以創建一個合成的UIEvent(在本例,'input'),然後在元素上分派它。此綜合事件將觸發事件監聽器(hello alert!)和角度綁定。

+0

謝謝。我想這只是使用jQuery插件與角胡的一個陷阱?我認爲應該會/會有更多的支持,因爲jquery實際上有相當多的合法庫。如果我想在將來使用jquery庫來處理這類事情,我是否總是需要編輯插件,以便它也觸發輸入事件以更新模型? – tommybananas

+0

我認爲你是對的陷阱。我猜測有一種以角度方式更新數值的「角度」方法,它也會更新模型。我已閱讀文章,他們警告不要在Angular之外使用jQuery,可能是出於這個原因。祝你好運! – Jack

相關問題