Я динамически создаю гиперссылку в коде С# за файлом ASP.NET. Мне нужно вызвать функцию JavaScript при клике. как это сделать?
Вызвать функцию javascript на гиперссылке
Ответ 1
Neater все еще, вместо typical href="#"
или href="javascript:void"
или href="whatever"
, я думаю, что это имеет гораздо больший смысл:
var el = document.getElementById('foo');
el.onclick = showFoo;
function showFoo() {
alert('I am foo!');
return false;
}
<a href="no-javascript.html" title="Get some foo!" id="foo">Show me some foo</a>
Если Javascript не работает, есть некоторая обратная связь. Кроме того, исключается ошибочное поведение (перескакивание страницы в случае href="#"
, посещение той же страницы в случае href=""
).
Ответ 2
Самый простой ответ - это...
<a href="javascript:alert('You clicked!')">My link</a>
Ответ 3
С параметром onclick...
<a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
Ответ 4
Ответ JQuery. Поскольку JavaScript был изобретен для разработки JQuery, я даю вам пример в JQuery:
<div class="menu">
<a href="http://example.org">Example</a>
<a href="http://foobar.com">Foobar.com</a>
</div>
<script>
jQuery( 'div.menu a' )
.click(function() {
do_the_click( this.href );
return false;
});
// play the funky music white boy
function do_the_click( url )
{
alert( url );
}
</script>
Ответ 5
В идеале я бы избегал генерации ссылок в вашем коде, потому что ваш код будет нуждаться в перекомпиляции каждый раз, когда вы хотите внести изменения в "разметку" каждой из этих ссылок. Если вам нужно это сделать, я бы не вставлял ваши вызовы javascript внутри вашего HTML, это была плохая практика, ваша разметка должна описать ваш документ не тем, что он делает, это работа вашего javascript.
Используйте подход, в котором у вас есть определенный идентификатор для каждого элемента (или класса, если его общая функция), а затем используйте Progressive Enhancement для добавления обработчиков событий, например:
[c# example only probably not the way you're writing out your js]
Response.Write("<a href=\"/link/for/javascriptDisabled/Browsers.aspx\" id=\"uxAncMyLink\">My Link</a>");
[Javascript]
document.getElementById('uxAncMyLink').onclick = function(e){
// do some stuff here
return false;
}
Таким образом, ваш код не будет ломаться для пользователей с отключенным JS, и у него будет четкое разделение проблем.
Надеюсь, что это полезно.
Ответ 6
Я предпочитаю использовать метод onclick, а не href для гиперссылок javascript. И всегда используйте оповещения, чтобы определить, какое значение у вас есть.
<a href='#' onclick='jsFunction();alert('it works!');'>Link</a>
Он также может использоваться для входных тегов, например.
<input type='button' value='Submit' onclick='jsFunction();alert('it works!');'>
Ответ 7
Я бы вообще рекомендовал использовать element.attachEvent(IE) или element.addEventListener(другие браузеры) для установки непосредственно события onclick, поскольку последний заменит любые существующие обработчики событий для этого элемента.
attachEvent/addEventListening позволяет создавать несколько обработчиков событий.
Ответ 8
Используйте onclick
атрибут HTML.
Обработчик события
onclick
захватывает нажмите кнопку мыши пользователя на элементе, к которому Используется атрибутonclick
. Эта действие обычно приводит к призыву к script метод, такой как JavaScript функция [...]
Ответ 9
Если вы не дождались загрузки страницы, вы не сможете выбрать элемент по id. Это решение должно работать для тех, у кого возникли проблемы с выполнением кода
<script type="text/javascript">
window.onload = function() {
document.getElementById("delete").onclick = function() {myFunction()};
function myFunction() {
//your code goes here
alert('Alert message here');
}
};
</script>
<a href='#' id='delete'>Delete Document</a>