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

Add or remove class in change event handler not working

更改方法事件处理程序中的 addClass / removeClass 方法有问题。

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

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

在 MyHandler 中我有

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

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

after page loading I'm getting once again this input via console, I'm executing the same code and everything works correctly

所以这意味着您在第一次尝试绑定事件时没有DOM准备好。试试这个:

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

你们很亲近。试试这个:

$(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>