好的,我将在这里发布一些代码。但是是的,事件侦听器附加到元素。
这是我正在构建的一些 JavaScript 类,它从搜索字段中查找事件,从该字段和其他表单元素中收集数据并将它们设置为this.params
.
数据返回到 AJAX 对象后,更新到页面,与原始代码相同(不同的行)。
var Compass_Search = Class.create({ ...
search: function() {
$('search_form').observe('change', this.get_data.bind(this));
},
get_data: function(e) {
var ele = e.target;
var filters = $$('.search_option');
if($(ele).tagName == 'INPUT') {
if($(ele).readAttribute('type') == 'checkbox') {
this.watch_filters(filters);
}
}
if(this.default_text == $('search_box').value) {
this.set_text_value('null');
} else {
this.set_text_value($('search_box').value);
}
new Ajax.Request(this.url, {
method: 'post',
parameters: this.params,
onComplete: function(r) {
result_text = r.responseText;
$('main').update(result_text);
}
});
},
...});