事件监听器或onClick - 最佳实践

时间:2013-08-25 06:36:40

标签: javascript addeventlistener

我有一个包含大约100个文本框的HTML页面。我目前使用JS事件监听器(模糊)来检测用户何时离开文本框。在事件监听器中,我使用if语句根据使用的文本框过滤操作,即if id == blahif className == blahblah等。

onBlur()放在每个文本框的HTML标记中以便将操作指向特定功能,或者我是否在正确的轨道上,是否会更好的做法?

2 个答案:

答案 0 :(得分:1)

塞尔吉奥正确告诉嘿哥们。最好通过DOM方法在脚本元素中使用事件处理程序。 现在,为了简化您的任务,请使用EVENT DELEGATION 只需附上document.body.onchange=detect

即可
function detect()
{
var textboxvalue=event.target.value //event.target point to text box on which blur event fires
}

这个简单的代码将通过冒泡事件来完成您的任务。无需使用任何数组/条件/类/ ids /单独的事件处理程序 “更改”事件与“模糊”事件相同。“更改”仅在textBox的值已更改时触发,因此null /空字符串不适用

答案 1 :(得分:1)

对我来说,生产力是表现之后的首要任务。

既然你是新手,我会推荐像jQuery这样的javascript库。有了这个,您可以做一个简单的声明,将blur / keyup / change事件放在所有事件上,并在一个有组织的地方处理它。

我毫不怀疑这可以通过纯javascript来完成,但javascript库的一个主要好处是通过减少行数来提高生产力。

在您的具体情况下,我会在所有$.keyup()上通过空的css <input>classif关闭另一个空的jQuery switch用于指定子文本框的类:

$('.myEmptyClassThatsOnEachOfThe100Textboxes').keyup(function(){
    if($(this).hasClass('myEmptyClassThatsOnEachTextboxOfThisFirstType')){
        //do stuff
    }
    else if(...
})