вывод после load
Доброго дня! Форумчане, подскажите пожалуйста, почему alert срабатывает раньше, чем идет подгрузка option в select через load?
<select id="ttt"></select>
$('#ttt').load('ajax', {mat : mat}, function(){
alert("Privet!");
});
ajax
<? foreach ($view['value'] as $key => $val){ ?>
<option value="<?=$val['value']?>">
<?=$val['value']?>
</option>
<? } ?>
Сначала выскакивает alert, а после подгружаются данные в select. А нужно, чтобы данные подгружались, а после с ними можно было работать. Спасибо. |
alexvb,
хром? |
да в любом, и в хроме в том числе...
|
alexvb,
может алерт заменить на console.log()? |
А что это даст? В консоле выводит, но видимо тоже раньше, чем подгружаются <option>ы...
|
Цитата:
Файл tmp.csp
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
$('#test').load('tmp1.csp',function(){
alert(this.options.length);
});
});
</script>
</head>
<body>
<select id='test'></select>
</body>
</html>
Файл tmp1.csp <option></option> <option>1</option> <option>2</option> У меня все работает! Алерт показывает 3 штуки. Т.ч. с ними можно работать, как и обещано в документации... |
И у Вас сначала алерт выскакивает, а потом уже можно с данными option работать.... Смысл в том, чтобы в подгружаемом списке один из элементов сделать выбранным (selected). Алерт поставил для теста, что и выявило проблему его первичного выскакивания...
|
alexvb,
вы поставьте вместо алерта this.options.selectedIndex = 1 ; или сколько вам нужно. |
рони,
selectedIndex это по порядковому номеру. А по значению можно также сделать? |
alexvb,
this.value = "tra-ta-ta" |
рони, спасибо огроменное!!!
|
Цитата:
Тот алерт как раз уже работает с данными, показывает, что их 3 штуки. ;) |
| Часовой пояс GMT +3, время: 19:38. |