то,что сразу возникло в голове :
$(elem).bind('click dblclick',function(e){
if(e.type == 'click'){
//подгружаем инфу на аяксе
return false;
}else {
//??? просто направляем?
}
})
НО firebug говорит,что возникает два click,перед одним dblclick.
считать одиночные клики и определять,делится ли кол-во на 2, не имеет смысла.
очевидно, придется делать либо через таймауты , либо считать количество кликов(?).
я попробовал через говнокодные таймауты.
гавнокодные,потому что :
когда делал через SetTimeout при одиночном клике , то на двойном клике (dblclick) таймаут не снимался (хз,почему.. таймаут был в window, ClearTimeout(t) ошибок не выдавал,но и не работал )
// HTML -- > <a href="http://google.ru/" id="a">google</a>
el = $(document.getElementById('a')),doo=false
el.bind('click dblclick',
function(e){
if(e.type=='dblclick') {
doo = false;
} else {
t = setTimeout(function(){
if(doo) el.css('color','red');
//тут подгрузка через аякс
},200)
doo = true;
}
return false; // чтобы не переходил по ссылке
}) // handler and bind end
протестил,у меня работает
сомневаюсь,что я написал этот код хорошо , потому что :
- в window для каждой ссылки добавляется свой doo (можно сделать это через $.data(),или что-то подобное)
- таймаут в 200ms - это время даблклика наглазок.(для полной уверенности это время нужно замерять?)
- при одиночном клике некоторое время ссылка остается синей, а потом меняет цвет на красный
кстати, любимый гугл не дал ответа ))