[英]Passing the event object to knockout.js function
我正在使用bind
從我的視圖中調用帶有參數的函數:
<span data-bind="click: modifyByOne.bind($data, 'plus')"></span>
按照這個答案,我通過執行以下操作獲取event
對象:
self.modifyByOne = function(type){
var span = $(event.currentTarget);
};
在Chrome中,一切正常,但在Firefox中,出現以下控制台錯誤:
未定義事件
我如何也可以在Firefox中使用它? 淘汰賽文檔並未對此提供太多答案。
敲除單擊綁定將兩個參數傳遞給偵聽器方法:當前綁定上下文( $data
)和事件。
通過使用bind,您可以像您一樣指定其他參數以傳遞給方法。 這些參數在兩個默認參數之前傳遞。 因此,您的方法應接受類型,數據和事件參數。
self.modifyByOne = function(type, data, event){
var span = $(event.target);
};
盡管這行得通,但對代碼中的DOM進行處理被認為是不好的做法。 嘗試創建自定義綁定 。
您無需在函數簽名中聲明event
參數。 但是除此之外,如果您需要訪問Knockout中的實際DOM元素,則應該使用自定義綁定處理程序。 您不應該從視圖模型內部訪問DOM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.