我正在ASP.NET文件后面的C#代码中动态创建超链接。我需要在客户端点击时调用JavaScript函数。我该如何做到这一点?
Answers:
还是Neater,而不是typical href="#"
or或href="javascript:void"
or 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=""
)。
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>
理想情况下,我将避免在代码中完全生成链接,因为每次您要更改每个链接的“标记”时,您的代码都需要重新编译。如果必须这样做,我不会将您的javascript“调用”嵌入HTML内,这完全是一种不好的做法,您的标记应描述文档而不是描述文档的作用,这就是javascript的工作。
使用一种方法,其中每个元素(或类,如果其具有通用功能)都有一个特定的ID,然后使用渐进增强功能添加事件处理程序,例如:
[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>
呢?
的
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>