Я динамически создаю гиперссылку в коде C # за файлом ASP.NET. Мне нужно вызвать функцию JavaScript при нажатии клиента. как мне это сделать?
javascript
hyperlink
ErnieStings
источник
источник
Ответы:
Аккуратнее еще, вместо
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 .источник
Если вы не дождетесь загрузки страницы, вы не сможете выбрать элемент по 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>
источник