вывод после 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, время: 01:24. |