Вы также объяснили, что вы хотите, чтобы первый щелчок установил ссылку, а второй - чтобы перейти к ней.
Ваша проблема в том, что когда вы связываете обработчик событий, он остается связанным, даже если вы 'мы удалили класс dummy
.Самое простое решение - просто использовать live()
вместо:
$("a.dummy").live("click", function() {
var myquery = $(this).attr('title');
$('p#output').text('You clicked on the ' + myquery + '. Click again to Google it.');
$('a').addClass('dummy');
$('a').attr('href', '#');
$(this).removeClass('dummy');
$(this).attr('href', 'http://www.google.com.au/#q=' + myquery);
return false;
});
bind()
(как неявно вызывается из click()
статическая привязка . live()
обновляется, поэтому после удаления фиктивного класса обработчик событий больше не будет вызываться.
Альтернативный подход заключается в использовании one()
, который вызывается только один раз:
$("a.dummy").one("click", function() {
var myquery = $(this).attr('title');
$('p#output').text('You clicked on the ' + myquery + '. Click again to Google it.');
$('a').addClass('dummy');
$('a').attr('href', '#');
$(this).removeClass('dummy');
$(this).attr('href', 'http://www.google.com.au/#q=' + myquery);
return false;
});