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, время: 08:34. |