我已經打有關與使用jQuery knockout.js,我很新的knockout.js檢索元素使用jQuery淘汰賽事件中
我的示例代碼,代碼是在這裏:http://jsfiddle.net/Ninjanoel/ADYN6/
基本上,我試圖創建一個彩票號碼輸入屏幕作爲我的知識測試,我現在試圖驗證輸入的文本框,然後將特殊效果應用到輸入框如果[onBlur],文本框無效。
我有一個'LotteryApp',帶有一個可觀察的'Lines'數組,帶有[5] ko可觀察數組的正常數組來作爲我的輸入或'Number Boxes'。我正在使用一個模板來顯示每個'Line'和一個用於渲染'Boxes'的模板。
我想要的是如果輸入不正確,可能會在文本框中調用一個jquery'color fade'插件[red to bg color]。但在「的onblur」功能,我創建,我找不到任何傳遞給函數的參數任何事情來幫助我打電話像myTextBox = jQuery(arguments.something)
,這樣我可以這樣做jQuery(myTextBox).colourFade()
<input type="text" data-bind="value:n, event:{blur: $parent.onBlur }, uniqueName:true, disable: $parent.isLD" class="lotteryNumber" maxlength="2"/>
是代碼在我最內層的模板中處理onBlur。
self.onBlur = function()...
是我希望調用'blur'事件的函數。
我知道,如果我使用自定義綁定,例如ko.bindingHandlers.myBinding
然後'元素'被直接傳遞給'update'和'init'調用,然後我可以使用它調用jQuery(element).colourFade(),但這更多的是瞭解如何訪問元素使用標準事件綁定,因爲我可以想象我會經常需要它,並且不希望在自定義綁定中執行所有操作,而且在自定義綁定中只有'init'和'update'選項(據我所知) ,我不認爲這些就足夠了(比如'keyup'怎麼樣?),無論如何,自定義綁定似乎基於ko.observable而不是事件本身。
摘要:
使用data-bind="event : {blur : myMethod}"
的時候,我該怎麼辦,的myModel.myMethod
裏面,抓住創建該事件的HTML元素。
甜,感謝夥計! 「警報(jQuery的(event.target).VAL());」返回文本框的值,就像我需要的一樣!我確信我之前嘗試過event.target,哦,謝謝你的簡潔回答! – Nnoel 2012-03-19 16:29:06
注意event.target在IE中不起作用。您需要爲IE使用event.srcElement ..因此,您應該使用類似這樣的方式處理所有瀏覽器:var target = event.target || event.srcElement – portlandrock 2013-06-21 21:39:33
@portlandrock:我編輯了我的帖子,指出這是使用jQuery事件對象,而不是直接來自瀏覽器的對象。如果jQuery在頁面上,淘汰賽將使用jQuery事件處理程序,它將[event.target](http://api.jquery.com/event.target/)屬性標準化,以便您可以在任何瀏覽器中使用它支持。 – Douglas 2013-06-22 15:11:35