簡體   English   中英

將事件對象傳遞給kickout.js函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM