Javascript函数添加事件不起作用

时间:2015-12-06 05:46:39

标签: javascript html function class addeventlistener

我刚注意到这一点。这很奇怪但我不知道我是否忘记做某事或者它只是一些不能工作的东西。 我尝试以这两种不同的方式在元素上添加事件。第一个工作,但第二个没有。请有人亲切地通过

(片段A)... //这会将事件添加到输入标记,并在大多数浏览器中正常工作

    for (var j = 0, inp = _T("input");j < inp.length;j++) {
       var place, value;
       inp[j].classList.contains("inp") ? inp[j].onblur = inp[j].onfocus = function() {
       this.placeholder != "" ? (value = this.value, place = this.placeholder, this.placeholder = "", this.value = value) : this.placeholder = place;
       this.className.indexOf("swell")>0 ? rC(this, "swell") : aC(this, "swell");
       }:0
    }

(摘录B)... //这在任何浏览器中都不起作用,但我需要它来解决兼容性问题

    for (var j = 0, inp = _T("input");j < inp.length;j++) {
       var place, value;
       inp[j].className.indexOf("inp") > 0 ? inp[j].onblur = inp[j].onfocus = function() {
       this.placeholder != "" ? (value = this.value, place = this.placeholder, this.placeholder = "", this.value = value) : this.placeholder = place;
       this.className.indexOf("swell") > 0 ? rC(this, "swell") : aC(this, "swell");
       }:0
    }

//_T("input") = document.getElementsByTagName

我陷入了一个严肃的项目中,像这样的小问题可能会令人沮丧。

1 个答案:

答案 0 :(得分:1)

如果indexOf是第一个元素,则返回0。因此,如果存在“inp”但它是第一部分(元素0),则不会大于零。