Триггер onChange событие после selectedIndex изменилось? - PullRequest
1 голос
/ 01 ноября 2010

Можно ли вызвать событие изменения в поле выбора, когда selectedIndex или val установлены с помощью jQuery?

Я пробовал это, и это, похоже, не работает.Я пытаюсь заменить выбранное поле одним из моих собственных.Проблема заключается в том, что если я прикрепил событие изменения к полю выбора, то при изменении индекса необходимо запустить это событие.

Есть ли способ сделать это?

var a = $("a");

$("a").on("click", function() {
  
  $("#selectList")[0].selectedIndex = a.index($(this));
  
    //now fire event

	return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#">Trigger 1</a>
<a href="#">Trigger 2</a>
<a href="#">Trigger 3</a>

<select id="selectList">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>

РЕДАКТИРОВАТЬ: @ xSaint32 ответил на это, используя триггер jQuery метод.

1 Ответ

2 голосов
/ 01 июля 2011

@ xSaint32 ответил на это, используя триггер jQuery метод.

var a = $("a"),
    select = $("#selectList");

$("a").on("click", function() {
  
  select[0].selectedIndex = a.index($(this));
  
  select.trigger( "change" );

  return false;
});

select.on("change", function() {
  
  alert("My index changed");

  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#">Trigger 1</a>
<a href="#">Trigger 2</a>
<a href="#">Trigger 3</a>

<select id="selectList">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
...