锚onclick不应该重新加载页面但触发javascript?

时间:2012-01-25 17:24:54

标签: c# javascript

我有一种情况,我在c#

的页面上动态地将一些内容添加到我的页面上的弹出框(这是一个div)
HtmlGenericControl content = new HtmlGenericControl();
content.InnerHtml = "<a id='close' href='' onclick='action()'>close</a><span>Some text here</span>";
divcontrl.Controls.Add(content);
divcontrl.Attributes.Add("class", "myclass");



javascript method:

function action() {
       $('.myclass').hide();
    }

如果我在锚点上保持href =''它关闭窗口但重新加载页面,如果我删除它而不关闭窗口。

4 个答案:

答案 0 :(得分:4)

更改您的链接标记attr,如下所示

//Edit changed from href="#" as it will scroll you to the top
href="javascript:void(0);" onclick='return action()' 

并添加返回js函数,

function action() {
    $('.myclass').hide();
    return false;
}

答案 1 :(得分:2)

在最后一行action()函数中添加return false;。这将阻止默认链接操作 - 重新加载页面(在您的情况下,空href意味着“相同的URL”)。

添加。同时将onclick="action()"更改为onclick="return action()"。或onclick="action(); return false;"

答案 2 :(得分:1)

使用<a href="#" ...。或<a href="javascript:void(0);" ...>

我们已经知道<a href="#foo">Foo</a>会创建指向同一页面中元素的链接,ID为'foo'。在这种情况下,#foo称为片段标识符。单击它将导致浏览器“跳转”到页面中的该元素而不重新加载它。

当片段标识符未提及页面中任何元素的ID(例如<a href="#">Foo</a>)时,浏览器会跳转到页面顶部。

答案 3 :(得分:1)

function action() {
       $('.myclass').hide();
       return false;
    }

Which "href" value should I use for JavaScript links, "#" or "javascript:void(0)"?