динамическое заполнение динамическими элементами
доброго времени суток!
народ подскажите плиз в чём засада: 1) имею html в нём DIV со style="display:none;" в DIV-е находится элемент SELECT 2) в JS файле с использованием естественно jquery при загрузке документа создаю основываясь на данных XML файла набор кнопок в обработчик click этих кнопок - сажаю отоборажение DIV-а отчисткой style и заполняю селект... в принципе если в конце события click перед завершением повесить alert видно что DIV отображается, а SELECT заполнен... но после подтверждения alert-а SELECT отчищается а DIV снова становится не видимым... пипец... я уже голову сломал... подскажите что я не так делаю?... на всякий пожарный приведу код javascript: $(document).ready(function () { $.ajax({ type: "GET", url: "xml/Categorues.xml", dataType: "xml", success: function (xml) { var Num = 0; $(xml).find('Catedory').each(function () { var ParentCode = $(this).attr('ParentCode'); var Code = $(this).attr('Code'); var Picture = $(this).attr('pic'); var ObjCategoryName = $(this).text(); if (ParentCode == "0000000000") { var newNum = new Number(Num + 1); var NewElem = $('#etalon').clone().attr('id', 'cat_' + Code); NewElem.attr('style', 'width:63px; height:63px;border:none;background: white url(\'' + Picture + '\') no-repeat; margin:3px;'); NewElem.attr('title', ObjCategoryName); NewElem.attr('value', Code); NewElem.hover( function () { //alert("in " + $(this).attr('title')); $('#MouseCategory').text($(this).attr('title')); } , function () { //alert("out " + $(this).attr('title')); $('#MouseCategory').text(''); } ); NewElem.bind('click',function () { var ObjCategory = $('#ObjCategory'); ObjCategory.empty(); ObjCategory.append("<option value=''></value>"); $('#SubCategoryDiv').attr('style', 'display:block;'); $(xml).find('Catedory').each(function () { var SubParentCode = $(this).attr('ParentCode'); var SubCode = $(this).attr('Code'); var SubPicture = $(this).attr('pic'); var SubObjCategoryName = $(this).text(); if (SubParentCode == Code) { ObjCategory.append("<option value='" + SubCode + "'>" + SubObjCategoryName + "</value>"); //alert(" >>> " + SubCode + " >>> " + SubObjCategoryName + " >>> " + SubParentCode + " === " + Code); } }); alert("id=" + $(this).attr('id') + " value=" + $(this).attr('value')); }); //NewElem.text(ObjCategoryName); $('#etalon').after(NewElem); } }); } }); }); HTML: <label>Категория товара:</label> <label id="MouseCategory"></label><br /> <div id="CategoryDiv"><button id="etalon" style="display:none;"></button></div> <div id="SubCategoryDiv" style="display:none;"> <label for="ObjCategory">Подкатегория товара:</label><br /> <select id="ObjCategory"> </select> </div><br><br> |
вопрос решился... вроде как...
проблема была в применении HTML5... использование для кнопки тега <button> а не <input type="button"> почему-то click для button отрабатывает с двойного нажатия (как ярлык на рабочем столе) а для <input> всё нормально, с первого нажатия... |
Часовой пояс GMT +3, время: 04:31. |