Задать строкой ф-ию onclick ссылки, jQuery
Есть ссылка:
<a href="ya.ru" id="rrr" onclick="return make_unclickable(this);">тест</a> код make_unclickable:
function make_unclickable(elem)
{
// не работает
$(elem).attr('click', 'return false;');
// не работает в IE
var t = elem.attributes.getNamedItem('onclick');
if (t)
{
t.nodeValue = 'return false;';
}
$(elem).attr('onclick', 'return false;');
$(elem).attr('href', '#');
return false;
}
Больше всего удивляет, что не работает через .attr! Пробовал делать .unbind('click') и .bind('click'...) но нужно эффекта не добился Подскажите - в чём косяк? |
<a href="ya.ru" id="rrr" onclick="make_unclickable(this);">тест</a> а так пробовали? Ой забыл поинтересоваться, а что делает такая хитроумная функция и зачем она такая хитроумная?:) |
Что, так не работает уже?
$('.unclickable').click(function(){return false;});
|
Gozar,
необходимо, чтобы если в onclick чтото было, его тоже больше не стало, а вообще href нормельно меняется, и в FF вобще пример работает как нужно
$(elem).click(function() {return false;});
Так работает, но click биндит новую ф-ию как listener в очереди, поэтому старый код продолжает вызываться Вариант
elem.onclick = function() {return false;};
Работает как нужно и в IE и в FF, но както смущает меня такой вариант :) Gozar, ничего особенно хитроумного нету - ссылка после разового применения становится неактивной |
Тогда
$(elem).unbind('click').click(function() {return false;});
|
e1f,
Да, спасибо, так работает правильно |
| Часовой пояс GMT +3, время: 21:07. |