http://javascript.ru/confirm
Зависит от сложности задачи. Иногда отказ от лишнего обращения к DOM дает резкий прирост скорости. К тому же речь идет не только о скорости но и об удобстве отладки. - стек вызова не замусоривается ничем лишним.
Я уже приаел конкретное решение - вынести функцию обработчик и обращаться к нему напрямую
var someclick = function(){...}
$('body').on('keyup', '#ajaxSearchString', someclick);
$('body').on('click', '.keypad div', function() {... someclick();});
всего одну - описание обработчика:
var f = ...
Тем что функция вызывается через длинную-длинную цепочку обработчиков jquery. Если не верите - посмотрите fireBug. У меня получилось 7 вызовов левых jquery-процедур от триггера до вызова того что нужно было вызвать. Во-первых это неоправданная трата ресурсов, во вторых осложняет локализацию источника вызова. А в третьих - зачем вот так через одно место????
jquery - замечательная библиотека, но иногда прививает какие-то странные шаблоны.
1. Туманно ровно до тех пор пока не придется столкнуться с чужим кодом на несколько тысяч строк, в котором программа сама собой жамкает по кнопкам. Причем делает это неправильно, в самый неподходящий момент, да еще и отложено по таймеру. Такой код я как раз унаследовал от предыдущего верстальщика.
2. Все что используется повторно, лучше оформлять в виде отдельных функций, переменных, объектов.
Например в тексте и вас и у топикстартера дважды используется $('#ajaxSearchString')
В принципе ничего страшного. Но отсутствие привычки такой подход рано или поздно приведет к тормозам.
В JS масивы, числа, строки - все является объектами.
new - означает создание объекта определенного типа.
Можно написать:
var i = new Number(17), a = new Array(1,2,3), c = new Object();
c.a = 1;c.b = 2;
А можно так:
var i = 17, a = [1,2,3], c= {a:1,b:2};
Нагляднее и короче. Поэтому в книгах рекомендуется второй вариант
! Для числа строго говоря разница есть.
Если в функции произошла ошибка будет сложнее определить откуда ее вызвали. У вас вызов замаскирован какими-то прослойками jquery и DOM
Лучше к такой практике не привыкать.
Проблема скорее всего не в самой таблице, а в контейнере в котором он лежит.
К тому же нужно уточнить какой именно ie - 6,7,8,9,10
$('#ajaxSearchString').val(write).trigger('keyup');
Плохое это занятие - эмуляция нажатия клавиатуры.
Торикстартеру - вынесите функцию чтения/записи записи наружу и вызывайте ее напрямую.
"Портал по ручкам" - как звучит!
Он даст только номер строки и тип ошибки. требуемый дамп окружения из него не вытянешь