Я динамически создаю гиперссылку в коде C # за файлом ASP.NET. Мне нужно вызвать функцию JavaScript при нажатии клиента. как мне это сделать?
Я динамически создаю гиперссылку в коде C # за файлом ASP.NET. Мне нужно вызвать функцию JavaScript при нажатии клиента. как мне это сделать?
Ответы:
Аккуратнее еще, вместо 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=""
).
Самый простой ответ ...
<a href="javascript:alert('You clicked!')">My link</a>
Или чтобы ответить на вопрос о вызове функции javascript:
<script type="text/javascript">
function myFunction(myMessage) {
alert(myMessage);
}
</script>
<a href="javascript:myFunction('You clicked!')">My link</a>
С параметром onclick ...
<a href='http://www.google.com' onclick='myJavaScriptFunction();'>mylink</a>
Ответ 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>
Я предпочитаю использовать метод onclick, а не href для гиперссылок javascript. И всегда используйте оповещения, чтобы определить, какая у вас ценность.
<a href='#' onclick='jsFunction();alert('it works!');'>Link</a>
Его также можно использовать для входных тегов, например.
<input type='button' value='Submit' onclick='jsFunction();alert('it works!');'>
В идеале я бы вообще избегал создания ссылок в вашем коде, так как ваш код будет нуждаться в перекомпиляции каждый раз, когда вы захотите внести изменения в «разметку» каждой из этих ссылок. Если бы вам пришлось это сделать, я бы не встраивал ваши «вызовы» javascript в ваш HTML, это вообще плохая практика, ваша разметка должна описывать ваш документ, а не то, что он делает, это работа вашего javascript.
Используйте подход, при котором у вас есть определенный идентификатор для каждого элемента (или класса, если его общая функциональность), а затем используйте прогрессивное улучшение, чтобы добавить обработчик (-ы) событий, например:
[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, и у него будет четкое разделение проблем.
Надеюсь, что это будет полезно.
<a href="https://stackoverflow.com/link/for/javascriptDisabled/Browsers.aspx" id="uxAncMyLink">My Link</a>
?
Я бы обычно рекомендовал использовать element.attachEvent (IE) или element.addEventListener (другие браузеры) вместо установки события onclick напрямую, поскольку последнее заменит любые существующие обработчики событий для этого элемента.
attachEvent / addEventListening позволяют создавать несколько обработчиков событий.
Используйте onclick
атрибут HTML .
onclick
Обработчик событий захватывает событие клика от пользователей кнопки мыши на элементе , к которомуonclick
применяется атрибут. Это действие обычно приводит к вызову метода сценария, такого как функция JavaScript [...]
Если вы не дождетесь загрузки страницы, вы не сможете выбрать элемент по 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>