我想知道如何從代碼中激發事件。在jQuery中觸發一個「onchange」事件,你只需要$(「selector」)。trigger(「change」)。有沒有辦法使用WinJS來做同樣的事情。如何在WinJS中觸發事件(相當於jQuery中的.trigger(「」))
[所有包含jQuery的建議都會被丟棄]
謝謝。
我想知道如何從代碼中激發事件。在jQuery中觸發一個「onchange」事件,你只需要$(「selector」)。trigger(「change」)。有沒有辦法使用WinJS來做同樣的事情。如何在WinJS中觸發事件(相當於jQuery中的.trigger(「」))
[所有包含jQuery的建議都會被丟棄]
謝謝。
fireEvent
可能是你想要的。
觸發對象上的指定事件。
鑑於標記
<p>
<button
id="oButton"
onclick="this.innerText='I have been clicked!'">Button
</button>
</p>
你可以做
oButton.fireEvent("onclick");
謝謝!這將做到這一點。我以錯誤的方式使用它,我在輸入「change」而不是「onchange」 –
在你準備功能:
WinJS.Utilities.query("#yourSelector").listen("change", this.customClicked, false)
然後定義customClicked功能(可以任意取名)
customClicked: function(eventInfo){
<!--do stuff -->
}
您可以使用event.initUIEvent
:
var button = document.getElementById('button');
var еvent = document.createEvent("UIEvents");
еvent .initUIEvent("click", false, false, window, 1);
button.dispatchEvent(еvent);
更多信息,可以發現here
火災和做迴應自定義事件。
火災的事件
WinJS.Application.queueEvent({type: 'ev_login_completed'})
到自定義事件作出迴應
WinJS.Application.addEventListener('ev_login_completed', function (e) {
// do stuff })
HTH
爲什麼要觸發,而不是一個JavaScript之一的 「WinJS」 的版本? (如果你處於某些沒有libs的環境下,你會怎麼做?)純粹依賴庫是**糟糕的可怕**練習,在嘗試libs之前你應該知道很多的vanilla JS。 – DividedByZero