标题可能措辞不正确。基本上我正在使用自定义事件处理程序进行测试并到达它们正在工作的地步,但是事件处理程序的this指向 ControlClientSide 而不是触发事件的项目。
下面的代码将澄清一切:
function ControlClientSide()
{
this.CheckBoxClicked = function(e) { }
this.Configure = function() {
$('#checkBox100').change(function(e) { $(this).trigger("CheckBoxClicked"); }.bind(this));
};
this.Configure();
};
var x = new ControlClientSide();
$(x).on("CheckBoxClicked", function(e) { alert( /* $(this).val() + */ ' Hi'); })
.on("CheckBoxClicked", function(e) { alert( /* $(this).val() + */ ' Hi2'); });
在这两个处理程序中,我试图将这一点指向实际的复选框项。目前它指向 ControlClientSide。谁能建议我缺少什么?
请参阅以下 JSFIDDLE:http: //jsfiddle.net/KC5RH/3/