我一直在用jQuery玩knockout.js,而且我对knockout.js很新。
我的代码示例和代码在这里:http://jsfiddle.net/Ninjanoel/ADYN6/
基本上,我正在尝试创建一个彩票数字输入屏幕作为我的知识测试,我现在正在尝试验证文本框的输入,然后如果[onBlur]将特殊效果应用于输入框,文本框无效。
我有一个'LotteryApp',带有一个可观察的'Lines'数组,有一个正常的[5] ko observable数组作为我的输入或'Number Boxes'。我正在使用模板显示每个'Line',并在其中使用另一个模板来渲染'Boxes'。
如果输入不正确,我想在文本框上调用jquery'color fade'插件[red to bg color]。但是在我创建的'onBlur'函数中,我无法找到传递给函数的任何参数中的任何内容来帮助我调用类似myTextBox = jQuery(arguments.something)
的内容,以便我可以执行jQuery(myTextBox).colourFade()
之类的操作/ p>
<input type="text" data-bind="value:n, event:{blur: $parent.onBlur }, uniqueName:true, disable: $parent.isLD" class="lotteryNumber" maxlength="2"/>
是处理onBlur的最里面模板中的代码。
self.onBlur = function()...
是我希望在'模糊'事件上调用的函数。
我知道如果我使用自定义绑定,例如ko.bindingHandlers.myBinding
那么“元素”被直接传递到“初始化”的“更新”,并呼吁,我就可以使用调用的jQuery(元).colourFade(),但是这更多的是一个锻炼的了解如何使用标准事件绑定,因为我能想象我会需要经常和不希望尽一切自定义绑定,并且还具有自定义绑定内唯一的“初始化”和“更新”选项来访问元素(据我所知),我不认为这些就足够了(例如什么关于“KEYUP”?)反正,自定义绑定似乎是基于ko.observable而不是事件本身。
摘要:
使用data-bind="event : {blur : myMethod}"
时,我如何在myModel.myMethod
内抓取创建该事件的html元素。
答案 0 :(得分:8)
jQuery event
对象是事件处理程序中的第二个参数,因此:
self.onBlur = function(data, event) {
console.log(event.target);
}