iSize1ce: не писать ретурн чего то там, а делать явные вызовы ф-й... или написать обработчик аяксовый и в него передавать ф-ю, которую нужно запустить по успешному результату и куда ругнуться при неудаче
Евгений: type=number, max length 16 символов, все после зануляется... потому на блюры/кейапы и тп вешают регулярку или ф-ю для фильтрации по заданным правилам
Артем: написанный пример очень, ну скажем таки плохой.... потому и пишу, что его можно переделать на более лучший. когда не будет привязки, мол мониторить, произошло ли изменение... а написать нормальный обработчик, который сообщит подписчику о изменении (гугл, яваскрипт паттерн наблюдатель)
Георгий Григорьев: возможно просто не допоняли друг друга но мне написаное показалось таким: использовать лесс для того, что бы за необходимости править бутстрап... что считаю не правильным. Варианты с коробки должны быть вариантами с коробки, что бы по мимо тебя любой мог взять последнюю актуальную версию и не вносить в нее изменений. Потому как таковое применения лесс теряется, о котором было написано. А если говорить про лень изучения нового, то из-за десятка - двух строк, если использовать бутстрап или что подобное, теряется смысл для "чтобы тему подогнать исходниками less"....
Артем: могу и ошибаться но разве вместо бинд не рекомендовано использовать on ?
Вообще проблема более глобальная... это подход к выполнению задачи(((
Использование тригера вызывает выполнение частично того, что устанавливается на элементе, то с таким же подходом можно и тригерхендлер заюзать.... Так же не могу понять, что именно нужно сделать, что значит "сделано через код", следует ли предположить о том, что скриптом или все же пользователем? Если скриптом, может вообще не делать мониторинг изменения скриптом инпута, а просто сделать доп наблюдателя в который заслать то, что нужно по данных и отдельно заслать просто вбивание/выставление значения инпута на нужное... Т.к. мы и так знаем, к какому элементу нужно обратиться, то просто передать на обработчик некий, мол типа произошло событие, выполнись....
Георгий Григорьев: что бы использовать бутстрап, нафиг не нужно тему подганять... а делается в одну строку обычных стилей, вместо пересборки всего бутстрапа.... Как результат, обновляй себе бутстрап до актуальной версии с минимальным телодвижением без пересборки. А если пойти через Ж....У, и пересобирать, на выходе будет неподдерживаемый продукт, от которого вскоре откажутся... и новому человеку прийдется перепиливать сделаное через Ж...У.
Вот и все применение лесс/сасс на практике... которые только и усложняют жизнь тем, кто в теме...
как показывает практика, событие "change", как таковое на инпутах моб девайсов очень часто ранее не конвертировалось браузером в соответствующие события тача и терялось, так же терялось данное событие и на части умных теликов и консолей с устаревшими прошивками не будет работать... потому все же следовало бы подумать о варианте реализации обработчика через клики ну а для моб устройств вообще добавить паралельно тачи. Хотя лично сам использую паралельно клик + чендж, для моб устройств клик + тач и это все под вменяемым контроллером, что бы отсекать повторное срабатывание в некоторых местах функционала...
Вот такие пироги, с использованием change...
Нет, не в этом проблема....
Куда банальнее, ай ди просто не существует в момент запуска hideTooltip...
Если выполнить эту ф-ю, предварительно заменив tool.classList.remove('open') на консоль лог тул, если ай ди существует, то выкинет в консоль.... что и можно наблюдать
Можно опробовать в консоле
(function (){
if (document.getElementById('myID')) {
var tool = document.getElementById('myID');
setTimeout(function () {
console.log(tool) //link to tag
}, 500)
}
})()
Ну или такой вариант более краисвый:
(function (){
var tool = document.getElementById('myID');
if (tool) {
setTimeout(function () {
console.log(tool)
}, 500)
}
})()
Еще как вариант, проблема может быть в самом classList, он просто не поддерживается в том браузере, в котором смотрел автор... т.к. нужно проверять и добавлять его реализацию ну или не использовать вообще.
Алексей Ярков: new Array() правильное создание масива, а писать просто, не правильно в контексте создания массива использовать просто Array(), т.к. это не создание и браузер уже по воле своих разработчиков думает, что с этим делать, выкинуть ошибку с остановкой выполнения сценария или угадать, что имелось в виду new Array ... и даже в этот год, 2016й, разработчики браузеров много делают проблема для не десктопных устройств, в частности на всевозможных консолях, модификациях хромого движка и тем более при его обрезке для теликов... Еще года 2 назад, было часть умных теликов но с не очень умными разработчиками браузеров для них, да и сейчас осталось их часть без апдейта, что попытка использование обычного вроде и более менее вылизанного жквери убивало на прочь все скрипты, т.к. он же обычно подключается первым... Потому если писать, то не типа "сойдет и так", а как допускается в стандарте...
Nwton: Вообще то "Но кликнуть по элементу внутри iframe с помощью js невозможно." -- не верно сказано. Необходимо разрулить уровни доступа между родителем и ребенком, но этот не кросбраузерное решение, т.к. последние пару лет еще более ужесточили политику да и необходимо добавить в ребенка немного жс кода.... хотя можно еще подумать через сабдоменное проксирование но это отдельная история.
Илья Агарков: все, что вы пишите, это всего лишь пыль в глаза... со всего выше написанного, делается вывод, что ваши таски, в духе того, что бы работали более менее у большинства.... потому предлагаю закрыть эту дискуссию.
Так же могу заметить, я ни разу не упоминал, что необходимо писать на jquery, а писал о том, что его нужно знать, а это большая разница. Когда знаешь и понимаешь, что есть что, для чего применяется, сможешь трезво оценить и принять решение о целесообразности применения чего либо в конкретном проекте. Пока по ваших комментариях, видно лишь только то, что вы усердно пытаетесь продвигать то, о чем сами понятия не имеете, возможно вы просто троль... Ну вообщем у меня большие сомнения в вашей квалификации....
Илья Агарков: Конечно рад, что вы не пользуетесь jquery, как таковым, но вы немного лукавите, в части современных жс фреймворков он интегрирован в облегченном виде, наверное просто забыли на это обратить внимание. В отношении применении babel, это же не панацея, как не расхваливай, а скорее плацебо, что бы себя успокоить да и других, не обращая внимания на проблемы... Применение современных тех возможно только в нескольких случаях:
- ресурс используется для ограниченного круга пользователей (в пределах компании, + партнеров, + аутсорсеров), где обновление софта к актуальной версии является одним со стандартных требований (при условии отсутствия приобретенных где то элементов, т.к. потом надо будет еще заниматься переписыванием таковых, при переходе на новую теху или договариваться с поставщиком про обновление своей части кода, что бы можно было потом легко провести обнову у себя, без особых заморочек)
- ресурс заведомо нацелен на аудиторию с современными девайсами и обновленным софтом.
- для старых версий подключается облегченная версия
- ресурс не имеет особого значения
Ну как то так.
Подведем итоги: нужно сделать какашкосайт, пожалуйста, можете практиковаться в современных техах но заведомо следует приготовиться, что заказчик будет вас дергать очень часто, чему и сами будете не рады. Ну а если надо сделать норм ресурс, то уточнять заранее под какой контингент он нацелен, можно ли послать старые браузеры да и на сколько старые и брать заведомо вылизанную либу с учетом лимитов по отсеивании пользователей по устаревании их браузеров.
EcmaScript6 -- забить на него надо ближайшие года 2-3, а не заниматься тратой времени на его изучение. Ни одна мелкая или средняя контора не будет заниматься написанием фронтенда под старые и новые браузеры, т.к. это дополнительные расходы и значительное усложнение поддержки проектов. Смотрят не только на то, сколько обойдется стоимость разработки ресурса но и стоимость последующего сопровождения и развития.
Давайте не будем путаться да и запутывать глупым советом людей, задачи решающиеся с помощью jQuery, ReactJS, AngularJS, EmberJS весьма разные и необходимо понимать, что для чего применимо, приемлемо и где какие ограничения... Да и не будем забывать про интеграцию jQuery в либы... По этому jQuery -- знать обязательно. Ну а если не выйдет его осилить, то пытаться осиливать ReactJS, AngularJS, EmberJS будет нереально, т.к. каждый с перечисленных сложнее предыдущего.
Евгений Петров: там, где приходится запускать события, к которым не имеешь отношения, уже плохая примета, а основываясь на этом, можно предположить присутствовать прокладка для обработки всех событий или по типу... Пускай вот прокладка и делает борьбу с ошибками
Евгений Петров: о том, как работает jQuery, как ни как, знаком... для подобного обращения не вижу в нем потребности... хотя разве, как искусственный тормоз...