- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
function showAddForm(node)
{
if(node.attr('e_control') == 1)
var strOK = "addProduct(\""+node.attr('e_id')+"\",\""+node.attr('e_control')+"\",\""+node.attr('e_name')+"\",\""+node.attr('e_size')+"\", $(\"#count_product_form\")[0].value, $(\"#control_product_form\")[0].checked, \"" + node.attr('e_code') + "\");";
else
var strOK = "addProduct(\""+node.attr('e_id')+"\",\""+node.attr('e_control')+"\",\""+node.attr('e_name')+"\",\""+node.attr('e_size')+"\", $(\"#count_product_form\")[0].value, 0, \"" + node.attr('e_code') + "\");";
$('#product_add_window')[0].innerHTML = "<div style='width:100%;text-align:right;font:10px Tahoma;color:blue;'><a href='#' onclick='$(\"#product_add_window\").hide(); return false;'>закрыть</a></div>";
$('#product_add_window')[0].innerHTML += "<div style='padding:5px;width:100%'><u>Наименование:</u><span style='padding-left:5px;'>"+node.attr('e_name')+" </span></div>";
$('#product_add_window')[0].innerHTML += "<div style='padding:5px;width:100%'><u>Типоразмер:</u><span style='padding-left:5px;'>"+node.attr('e_size')+" </span></div>";
if(node.attr('e_control') == 1)
$('#product_add_window')[0].innerHTML += "<div style='padding:5px;width:100%'><u>Ободная лента:</u><span style='padding-left:5px;'><input id='control_product_form' type='checkbox' value='"+node.attr('e_control')+"' checked /></span></div>";
$('#product_add_window')[0].innerHTML += "<div style='padding:5px;width:100%'><u>Количество:</u><span style='padding-left:5px;'><input id='count_product_form' type='text' value='' checked style='background-color:#f6f6f7; border:1px solid #455064;' onkeydown='if(event.keyCode==13) {sstop=true; $(\"#focusOK\")[0].onclick();} event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);' onkeyup='this.value = this.value.replace(/[^0-9]/g,\"\");' onclick='event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);' /> </span></div>";
$('#product_add_window')[0].innerHTML += "<div style='padding-top:5px;text-align:right'><input type='button' value='ok' id='focusOK' style='width:50px;height:20px;font-size:11px;' size=5 onclick='"+strOK+"$(\"#product_add_window\").hide();'> <input type='button' value='Отмена' style='width:70px;height:20px;font-size:11px;' onclick='$(\"#product_add_window\").hide();event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true);'></div>";
$('#product_add_window').show();
setTimeout("$('#count_product_form')[0].focus();",200);
}
someone 26.07.2013 10:12 # 0
ErmineMD 26.07.2013 18:09 # 0
Мягко говоря, непонятно.
inkanus-gray 26.07.2013 23:05 # +1
И да, [0] не нужен: он понадобился только для того, чтобы объект jQuery (который в данном случае является массивом, пусть и из одного элемента) конвертировать в объект DOM.
Если же нужно ограничить количество элементов, то у jQuery есть метод first(), но я сомневаюсь, что на одной странице может быть несколько элементов с одним айдишником.
А в данной задаче можно выкинуть jQuery совсем, ведь есть же document.getElementById.
ErmineMD 27.07.2013 02:57 # 0
inkanus-gray 28.07.2013 19:35 # 0
inkanus-gray 26.07.2013 23:15 # +2
1. Копипаста. У кого хватило терпения дочитать и понять, чем отличаются строки 04 и 06?
2. style='padding:5px;width:100%', хотя можно было бы завести под это дело класс.
3. Есть сомнения в полезности 22-й строки. Вдруг юзер за 200 миллисекунд успеет таки выбрать нужный элемент?
4. Я не уверен, что указание атрибута onclick вместо навешивания обработчика через $.click(function) — это то, что нужно.
ErmineMD 27.07.2013 03:24 # +1
Поясните, пожалуйста, пункт 4. В данном случае есть какая-то принципиальная разница, учитывая стиль автора «вставить всё, что нужно (html, css, javascript), одним куском кода»? Я имею в виду быстродействие, утечки памяти в старых браузерах или что-либо подобное. Кроме того, $.click(function) подразумевает, что нам сначала нужно найти элемент, для которого будет вызываться обработчик, а это лишние действия.
anonimb84a2f6fd141 27.07.2013 21:43 # 0
inkanus-gray 28.07.2013 19:43 # 0
А вообще весь этот треш и угар можно было поместить в блок с атрибутом style="display:none". Полагаю, что код страницы распух бы не сильно, зато функция свелась бы к $('#product_add_window').show(); и к замене нескольких атрибутов элемента. Но вполне возможно, что по каким-то причинам так удобнее (например, код этого блока полностью переписывается разными функциями). Правда, даже в этом случае можно было бы отделить CSS и JS от HTML...
inkanus-gray 28.07.2013 19:54 # 0
Что же касается времени поиска, то поиск через document.getElementById вряд ли будет добавлять больше времени, чем разбор этих всех onclick=...
bormand 27.07.2013 09:14 # 0
Длиной ;)
anonimb84a2f6fd141 27.07.2013 21:42 # +1
Вот это меня тоже, блядь, бесит, и вовсе не только в жаваскрипте.
Еще похоже было в питоне i = 10000000000000000000000000. Посчитайте-ка, не трогая клавиатуру и мышь, сколько тут нулей (чел просто не знал про int(1e15))?