爲什麼當我通過jQuery.val('')更改文本輸入的值時,會觸發input
事件?
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/input
爲什麼當我通過jQuery.val('')更改文本輸入的值時,會觸發input
事件?
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/input
我的猜測是,你正在試圖獲得AngularJS看到你的變化(通過綁定),當你改變你的輸入值(通過jQuery的val
方法)?
我一起拋出此琴來說明如何得到這個工作: http://jsfiddle.net/6JTDf/1/
而不是調用trigger
(這將創建一個jQuery「事件」),你可以創建一個合成的UIEvent(在本例,'input'),然後在元素上分派它。此綜合事件將觸發事件監聽器(hello alert!)和角度綁定。
謝謝。我想這只是使用jQuery插件與角胡的一個陷阱?我認爲應該會/會有更多的支持,因爲jquery實際上有相當多的合法庫。如果我想在將來使用jquery庫來處理這類事情,我是否總是需要編輯插件,以便它也觸發輸入事件以更新模型? – tommybananas
我認爲你是對的陷阱。我猜測有一種以角度方式更新數值的「角度」方法,它也會更新模型。我已閱讀文章,他們警告不要在Angular之外使用jQuery,可能是出於這個原因。祝你好運! – Jack
只有當直接用戶操作導致更改時,纔會觸發類似更改,模糊,輸入等任何事件 –
即使不是由jQuery解僱。這是您使用的瀏覽器不支持'input'事件 –
您需要觸發該更改:'$('。selector')。trigger('change');'等 –