2014-02-11 1 views
3

У меня есть ссылка выглядит следующим образом:Как выполнить OnClick и HREF как в теге Anchot (<a>)

<a href="www.google.com" onClick="someFunction()">Click me</a> 

При нажатии на ссылку, это исполняющий функцию JavaScript, но не принимая меня в HREF ссылки.

Любые идеи, как достичь того же?

+2

Java! = JavaScript –

+2

Это не ДИВ? –

+1

Пожалуйста, поделитесь своей функцией someFunction() и повторите свой вопрос (onclick между тегами, это должен быть атрибут) – pbenard

ответ

7

Я думаю, что самый простой способ сделать это, чтобы сделать вашу функцию return true, так что после завершения функции тег привязки будет вести себя так, как обычно. Таким образом, вы можете также использовать целевой-атрибут, если вы хотите использовать новое окно:

<a href='http://www.google.com' onclick="myFunction();" target="google">Click me</a> 

Script

<script type='text/javascript'> 
    function myFunction() { 
     alert("hello"); 
     return true; 
    } 
</script> 
+0

Я согласен с вами, это лучше, но искатель не хотел делиться своей функцией, поэтому было невозможно определить, он использовал return false или нет:/+1 для вас – pbenard

+0

Не имеет значения, что возвращает функция, вы всегда можете обернуть ее в новую функцию, которая возвращает true при необходимости :) Во всяком случае, я все еще думаю, что это лучший способ сделайте то, что он попросил. – Esko

+0

Неважно, что возвращает 'myFunction'. Важно то, что возвращает «onclick». Он возвращает 'undefined' (потому что у него нет оператора return), поэтому он не остановит связь. – Quentin

1

Вы можете сделать это несколькими способами,

<div onclick = "function();"><a href = "link.com">link here</a> </div> 

или вы могли бы просто использовать OnClick на самом а

<a href = "link.com" onclick = "function();"> link here</a> 

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

EDIT: как пользователь выше меня опубликовал, функция возвращает true, если вы хотите, чтобы href также выполнялся.

3

Я использовал JQuery, я надеюсь, что это все-таки понятно:

<a href="www.google.com" onClick=someFunction()>Click me </a> 

Ее выполнение функции JS, но не принимая меня в HREF ссылки.

Так один путь, чтобы добавить перенаправление после функции:

function someFunction() 
{ 
    ... your code ... 

    window.location.href( $(this).attr('href') ); // <----- HERE 

} 

UPDATE ПОСЛЕ COMMENT:

function someFunction() 
    { 
     ... your code ... 

    window.open( $(this).attr('href') , '_blank' ); // <----- HERE 

    } 
+0

будет window.location.href откройте ссылку в новом окне или новую вкладку. Я хочу, чтобы она открывалась в новой вкладке. – user2129794

+0

Посмотрите обновление, чтобы иметь _blank – pbenard

+0

его открытие в новом окне sumtyms и в новых суммах табуляции – user2129794

-2

Когда событие щелчка крепится на анкера теге, он обрабатывается браузером в ' особым "способом.

.click не должен работать с тегами 'a', потому что браузер не поддерживает «поддельный щелчок» с помощью javascript.

Я имею в виду, вы не можете «щелкнуть» элемент с помощью javascript. С помощью тегов «a» вы можете инициировать событие onClick, но ссылка не изменит цвета (к цвету посещенных ссылок, по умолчанию в большинстве браузеров фиолетовый).

Таким образом, было бы нецелесообразно, чтобы событие «click» работало с тегами «a», поскольку действие перехода к атрибуту href не является частью события onClick, а жестко запрограммировано в браузере.

Но вы можете сделать некоторые настройки для обработчика onclick, чтобы ссылаться на ссылку href.

Позволяет иметь пример для этого:

$('a').click(function() { 
       window.open($(this).attr('href'));     
}); 

Вот является http://jsfiddle.net/4Qku8/ демонстрирует тот же с помощью JQuery.

Для получения более подробной информации, пожалуйста, обратитесь к this link

Смежные вопросы