我有一個JavaScript對象,它是與此類似:如何訪問事件對象?
var MyClass;
MyClass = (function() {
// private
var $elems;
// constructor
function MyClass(selector) {
$elems = $(selector);
$elems.change(myEventHandler(e));
}
// event handler
function myEventHandler(e) {
var isSelected = ($(e.target).attr('checked') == 'checked');
if (isSelected) {
alert('You selected me');
}
}
return MyClass;
})();
我調用這個類在我的HTML文檔這樣的:
$(function(){
var myClass;
myClass = new MyClass(".MySelector");
});
這給我的錯誤:
Uncaught ReferenceError: e is not defined MyClassJsFile.js:17
MyClass MyClassJsFile.js:17
(anonymous function) Step3:36
f.extend._Deferred.e.resolveWith jquery.min.js:16
e.extend.ready jquery.min.js:16
c.addEventListener.B
我以爲我正在將事件對象傳遞給構造函數的這一行中的事件處理函數:
$elems.change(myEventHandler(e));
在這種情況下,我如何正確傳遞事件?
你在使用什麼庫?爲什麼你在變量'$ elems'的名字中有'$'? – some
@some他正在使用jQuery,並且領先的'$'是jQuery開發人員的一個常見提示,即所討論的變量包含jQuery對象而不是DOM元素。 – Alnitak
是的,我正在使用jQuery。我喜歡命名約定,其中持有jQuery對象的變量的名稱以'$'開頭。 – quakkels