在更改事件处理程序中添加或删除类不起作用

时间:2015-08-11 21:15:08

标签: javascript jquery addclass removeclass

我在更改方法事件处理程序中遇到addClass / removeClass方法的问题。

我已经注册了我的处理程序:

$('.someSelector').change(MyHandler);

在MyHandler中我有

function MyHandler(){
  var input = $(this);
  input.addClass('something'); //not working
}

页面加载后我再次通过控制台获取此输入,我正在执行相同的代码,一切正常。那么改变方法有什么问题呢?

2 个答案:

答案 0 :(得分:2)

  

页面加载后我再次通过控制台获取此输入,我正在执行相同的代码,一切正常

因此,这意味着当您第一次尝试绑定事件时,您没有准备好DOM。试试这个:

$(function() {
    $('.someSelector').change(MyHandler);
});

答案 1 :(得分:1)

你非常接近。试试这个:



$(document).ready(function () {      
  $('.someSelector').change(MyHandler);      
});

function MyHandler(){

  var input = $(this);
  input.addClass('something'); 
}

.something{background-color:red;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<select class="someSelector">
  <option>A</option>
  <option>B</option>
  <option>C</option>
</select>
&#13;
&#13;
&#13;