Anchor onclick不应该重新加载页面,而应该触发javascript

本文关键字:javascript 不应该 onclick 新加载 加载 Anchor | 更新日期: 2023-09-27 18:21:20

我有一种情况,我正在从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=''固定,它将关闭窗口,但重新加载页面,如果我删除它,则不会关闭窗口。

Anchor onclick不应该重新加载页面,而应该触发javascript

更改链接标签属性如下,

//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;
}

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

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

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

哪个";href"我应该为JavaScript链接使用的值#"或";javascript:void(0)"?

使用<a href="#" ...。或CCD_ 6。

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

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