Получите indexpath выбранной строки. Перезагрузите таблицу. В heightForRowAtIndexPath методе UITableViewDelegate, набор высота строки, выбранной к различной высоте и для других, возвращают нормальную высоту строки
Имя onchange может ввести в заблуждение, если вы не понимаете, что событие change и изменяемое значение - не одно и то же. Событие изменения происходит, когда пользователь изменяет значение в браузере. Я считаю, что вы можете запустить событие вручную, вызвав dojo.byId ('mySel'). Onchange ()
после того, как измените значение программным способом. (Однако вам может потребоваться определить функцию, которая вызывает alert
. Я сам этого не делал.)
Это изменит значение, но не вызовет событие onchange. Каждый раз, когда вы изменяете элемент с помощью JavaScript, он не запускает событие (предотвращает возникновение проблем с рекурсией *).
Если вы настроили такой обработчик событий.
function myHandler(){
//do whatever stuff here
changeColor( dojo.byId('mySel') );
}
, вы можете вызвать его отдельно, после того, как вы установите значение программно.
Примечание (*): я не эксперт по додзё ... поэтому я предполагаю, что они не «добавили» автоматический вызов обработчиков событий, когда вы устанавливаете значение из JavaScript.
Вы можете взглянуть на эти вопросы и ответы на них: они могут помочь:
вы можете получить доступ к событию «onpropertychange», оно содержит свойство в аргументах события, чтобы определить, какое свойство было изменено.
Он обнаруживает изменения как 'selectedIndex', так и 'value' - просто протестируйте 'propertyName'
<select id="mySel" onpropertychange="dothis(event);">
<option value="a">a</option>
<option value="b">b</option>
</select>
function dothis(event)
{
if (event.propertyName == "selectedIndex")
alert('selection changed');
}
прямо у меня в голове ... (в настоящее время используется фреймворк asp.net js, который немного отличается)