onclick срабатывает со 2 раза в ie
подскажите не могу разобраться, в ie onclick срабатывает со второго раза. не когда я ставлю галочку в input, а когда я ее убираю
Display:none проверил прописанно, все равно не срабатывает. Вот код выкладываю. Вызывается при постановке галочки в input'e: <input type="checkbox" name="param_{$params[i].optionID}_{$params[i].variants[j].variantID}" value="yep" id="filter-checkbox-{$params[i].variants[j].variantID}" class="filter-checkbox" onclick="showInformer(this);"> ну и js: function showInformer(block){ $(block).bt({ trigger : 'click', positions : ['left'], contentSelector : "$('#filter-informer-bt').html()", width : 'auto', fill : '#f0f0f0', strokeWidth : 1, strokeStyle : "#06007a", spikeLength : 10, spikeGirth : 15, padding : 5, cornerRadius : 0, cssClass : 'filter-info', closeWhenOthersOpen: true, preShow: function(box){ var pos = $('#filter-div').position(); var width = $('#filter-div').outerWidth(); $(box).css({ left: (pos.left - 136) + "px"}); } }); }; ну и то что выводится: <div id="filter-informer-bt" class="filter-hide"><div id="filter-informer"> Тест</div></div> Вот срабатывает не когда я ставлю input (галочку) а когда ее убираю |
видимоб обработчик поставки галочки возвразщает false или типа того
|
Как это решить подскажите плизз???
|
добавил return false. Теперь такая картина во всех браузерах срабатывает со 2 раза onclick.
Что это может быть подскажите??? |
А что есть вместо onclick сменить на onchange ?
|
Так же само со второго раза.
Проблема где то в обработчике наверно что оно возвращает значение false Но где не могу понять |
Честно говоря не знаю почему такое может быть, тк не знаю как работает метод bt. При нормальных обстоятельствах все работает, поэтому определено что-то изменяется этим методом.
|
Хотя я бы всетаки обошёл это простым биндом через jquery.
Например, добавить класс и по нему найти элемент и добавить событие. |
а можно пример, мне так проще будет?
|
<input type="checkbox" name="param_{$params[i].optionID}_{$params[i].variants[j].variantID}" value="yep" id="filter-checkbox-{$params[i].variants[j].variantID}" class="filter-checkbox dodgy-checkbox"> $(".dodgy-checkbox").bind("click", function() { showInformer(this); }); |
теперь все отлично работает в ie, а в firefox'e со 2 раза срабатывает
|
Тогда можно добавить:
$(".dodgy-checkbox").unbind().bind("click", function() { showInformer(this); }); |
Опять в ie все работает как часы в firefox не срабатывает с 1 раза, с срабатывает со второго
|
Уж, даже и не знаю, что может быть. Хочу уточнить, что если ты после перезагрузки станицы кликаешь то не срабатывает на 1 раз ? Тогда это просто состояние чекбокса нужно задать вручную, должно пофиксить.
<input type="checkbox" name="param_{$params[i].optionID}_{$params[i].variants[j].variantID}" value="yep" id="filter-checkbox-{$params[i].variants[j].variantID}" class="filter-checkbox dodgy-checkbox" checked="checked"> |
djonA,
вы что-то перемудрили в своём коде. Если просто повесить обработчик клика на чекбокс, то всё работает в IE 7-9 и остальных браузерах. |
да я вот убрал все не нужно все отлично работает в ie, а вот в firefox'e хоть убей работает со второго раза.
То есть каждый второй клик срабатывает |
Я вот повесил просто alert на onclick в checkbox все срабатывает с 1 раза, а вот открытие showInformer(this)
срабатывает в firefox только каждый 2 раз в ie все отлично с 1 раза |
получается проблема где то тут:
function showInformer(element){ $(element).bt({ trigger : 'click', positions : ['left'], contentSelector : "$('#filter-informer-bt').html()", width : 'auto', fill : '#f0f0f0', strokeWidth : 1, strokeStyle : "#06007a", spikeLength : 10, spikeGirth : 15, padding : 5, cornerRadius : 0, cssClass : 'filter-info', closeWhenOthersOpen: true, preShow: function(box){ var pos = $('#filter-div').position(); var width = $('#filter-div').outerWidth(); $(box).css({ left: (pos.left - 136) + "px"}); } }) }; |
А подскажите как сделать проще вывести слово test слева от checkbox, где ставлю галочку.
<input type="checkbox" onclick="вывести слово test слева на 20 пикселей"> ??? |
Ervin спасибо все разобрался
|
Часовой пояс GMT +3, время: 14:36. |