2013-01-14 25 views
1

我想知道如何從代碼中激發事件。在jQuery中觸發一個「onchange」事件,你只需要$(「selector」)。trigger(「change」)。有沒有辦法使用WinJS來做同樣的事情。如何在WinJS中觸發事件(相當於jQuery中的.trigger(「」))

[所有包含jQuery的建議都會被丟棄]

謝謝。

+0

爲什麼要觸發,而不是一個JavaScript之一的 「WinJS」 的版本? (如果你處於某些沒有libs的環境下,你會怎麼做?)純粹依賴庫是**糟糕的可怕**練習,在嘗試libs之前你應該知道很多的vanilla JS。 – DividedByZero

回答

3

fireEvent可能是你想要的。

觸發對象上的指定事件。

鑑於標記

<p> 
    <button 
     id="oButton" 
     onclick="this.innerText='I have been clicked!'">Button 
    </button> 
</p> 

你可以做

oButton.fireEvent("onclick"); 
+0

謝謝!這將做到這一點。我以錯誤的方式使用它,我在輸入「change」而不是「onchange」 –

0

在你準備功能:

WinJS.Utilities.query("#yourSelector").listen("change", this.customClicked, false) 

然後定義customClicked功能(可以任意取名)

customClicked: function(eventInfo){ 
    <!--do stuff --> 
} 
0

您可以使用event.initUIEvent

var button = document.getElementById('button'); 
var еvent = document.createEvent("UIEvents"); 
еvent .initUIEvent("click", false, false, window, 1); 
button.dispatchEvent(еvent); 

更多信息,可以發現here

0

火災和做迴應自定義事件。

火災的事件

WinJS.Application.queueEvent({type: 'ev_login_completed'}) 

到自定義事件作出迴應

WinJS.Application.addEventListener('ev_login_completed', function (e) { 
      // do stuff }) 

HTH