在href属性中使用"#"的替代方法

Spi*_*idE 46 html javascript href

可能重复:
Javascript链接的Href:"#"或"javascript:void(0)"?

<a>标签用于创建超链接,但在这个年龄段的jQuery和Ajax的,我们都用它来加载HTML到<div>S IN同一页面的<a>标签.

也就是说,我们将href属性设置为href="#",使用或者更确切地滥用#角色作为占位符以及一些不良副作用,例如URL附加#角色.

如果将href属性留空href = "",则链接似乎不起作用.

无论如何以更干净的方式执行此操作,例如当用户将鼠标悬停在链接上时,在浏览器的状态栏中显示一些文本或虚拟功能,并使链接执行程序员的意图?

这是我的代码.

<ul id="sidebarmenu1">
   // List that is converted into a menu... 
   <li> <a href="#" id="loadHotel" > HOTEL </a> </li>
   <li> <a href="#" id="loadCountry"> COUNTRY </a> </li>
   <li> <a href="#" id="loadCity"> CITY </a> </li>
</ul>

// The jQuery to load content into another div with Ajax
var loadUrl = "createHotel.php";
$("#loadHotel").click(function() {
    $("#mainContent").html(ajax_load).load(loadUrl);
}); 

// ajax function to load hotel ---> rooms page 

var url_loadRooms = "viewRooms.php";
$("#createRooms").click(function() {
    $("#mainContent").html(ajax_load).load(url_loadRooms);
});
Run Code Online (Sandbox Code Playgroud)

还有什么可以用来代替"#"让我的代码整洁......?

nic*_*ckf 44

最好的解决方案是根本不使用一些虚拟占位符.使用有意义的URL,如果实际遵循链接,将显示您从AJAX请求获得的信息.

我经常使用我的网络应用程序,使用Javascript来增强工作网站.例如,HTML:

<a href="/users/index" rel="popup">View users</a>
Run Code Online (Sandbox Code Playgroud)

Javascript(jQuery):

$('a[rel*="popup"]').click(function() {
    loadPopup({    // whatever your favourite lightbox is, etc..
        url: this.href
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

这样做的好处很多.屏幕阅读器,网页抓取工具和javascript关闭用户都可以访问您的网站,即使打开了javascript的用户也可以在状态栏中获得有意义的网址,这样他们就可以知道他们的去向.


And*_*are 17

我通常使用这个:

href="javascript:void(0);"
Run Code Online (Sandbox Code Playgroud)

设置锚点的href属性以javascript:void(0);向浏览器指示此锚点不是指向另一个文档或锚点的超链接,

  • 说真的,不要这样做.有各种各样的问题,在这里总结得很好:http://www.jibbering.com/faq/#javascriptURI (4认同)

Asa*_*aph 7

如果您的onclick处理程序返回false,浏览器将不会跟随该链接.试试这个:

<a href="#" onclick="alert('No # in the address bar!'); return false;">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

编辑:

如果你绝对不使用octothorpe(即#符号),你就不必这样做了.试试这个:

<a href="" onclick="alert('No change in the address bar!'); return false;">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

  • @Tim Down:在禁用 JavaScript 的情况下实际使用互联网的*人*数量通常被夸大了。这个数字实际上非常小,以至于 Google Analytics 甚至没有计算这些人(怎么可能,它是基于 JavaScript 的)。即使是当今的主要机器人也支持 JavaScript。无论如何,OP (`#`) 的替代方案并不完全代表有意义的回退。 (2认同)