Обновление .load jquery
Проблема очень специфична. По этому реализована данным способом.
Нужно показывать разные div_ы на 1 странице по средствам выпадающего списка (выпадающий список обязательный пункт). Код работает, но смущает задержка при обновлении контента при выборе другого пункта в селекте. Может есть мысли как минимизировать задержку или убрать ее вовсе? <select id="CategoryTrees" name="name"> <option selected="selected" title="#" value="10">s</option> <option title="#" value="20">g</option> <option title="#" value="30">d</option> </select> <div id="container"></div> <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script> <script type="text/javascript"> $("#container").load("1.html #blokone"); $(document).ready(function() ** $('select[name="name"]').change(function()** var el = $(this).val(); if (el==10) ** $("#container").load("1.html #blokone") } else if (el==20) ** $("#container").load("2.html #bloktwo") } else if(el==30) ** $("#container").load("3.html #blokthree") } }); }); document.getElementById("CategoryTrees") .onchange = function () ** var b = ** 10: "blokone", 20: "bloktwo", 30: "blokthree" }, c = this.value, a; for (a in b) document.getElementById(b[a]) .style.display = 0 == c || c == a ? "block" : "none" }; </script> |
Не использовать load. Это не проблема специфична, это решение по клику грузить новый контент в див - странное решение. Такое делают для подгрузки новых страниц, и используют гифку-прелоадер, который показывает что идет загрузка. Такими темпами скоро при наведении на выпадающее меню пункты меню будут грузить ajax-запросом.
Что мешает загрузить все дивы и по клику меню ставить им display:block? |
Можно пойти дальше и прописать фолбэк атрибут action, параметры передавать скрытыми полями и вот наша форма умеет работать без всяких скриптов.
|
Часовой пояс GMT +3, время: 16:11. |