2012-05-28 4 views
0

Я хочу дать пользователю возможность настроить ссылку как обычную ссылку или событие onclick. В случае события onclick поведение по умолчанию должно быть отключено. В настоящее время у меня есть эта ссылка:Как настроить ссылку как нормальную ссылку или обработчик onclick?

<a target="_blank" class="arrow" href="javascript:void();" onclick="f(\"value",\"value\");return false;"> 

Это отлично подходит для события onclick. Но как должна выглядеть ссылка, когда мне нужен только href?

Это ?:

<a target="_blank" class="arrow" href="http://www.xy.com" onclick="return false;"> 

Или лучше удалить OnClick атрибут полностью? Или это лучше:

<a target="_blank" class="arrow" href="http://www.xy.com" onclick="javascript:void();"> 
+1

Как вы даете людям выбор того, как ссылка работает? –

+0

Если вы прикрепляете обработчик событий, полностью удалите атрибут 'onclick'. Это не нужно. – xbonez

ответ

1

Не использовать onclick. Прикрепите обработчик клика, где логический флаг зависит от выбора пользователя.

$('#yourLink').on('click', function(){ 
    //this value depends on the user's choice. 
    var doesUserWantHref = true; 

    if (doesUserWantHref) { 
     //do nothing 
     return true; 
    } else { 
     //you js logic goes here 
     return false; 
    } 
}); 
+0

Проблема в том, что я использую плагин шаблона jquery, и я передаю его своими данными из моей функции ajax, поэтому href и onclick уже присутствуют и должны быть заменены? – Bytemain

1

Вы также можете сделать это после загрузки страницы, делая что-то вроде ...

// for just the href 
$("#yourLink").attr("href", "http://yourlink.com/").on("click", function() { }); 

или

// for just the onclick 
$("#yourLink").attr("href", "javascript: void()").on("click", function() { /* useful work */ }); 
Смежные вопросы