Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “使用”的替代方案#&引用;在href属性中_Javascript_Html_Href - Fatal编程技术网

Javascript “使用”的替代方案#&引用;在href属性中

Javascript “使用”的替代方案#&引用;在href属性中,javascript,html,href,Javascript,Html,Href,//jQuery使用Ajax将内容加载到另一个div中 var loadUrl=“createHotel.php”; $(“#loadHotel”)。单击(函数(){ $(“#mainContent”).html(ajax_load).load(loadUrl); }); //用于加载酒店-->rooms页面的ajax函数 var url_loadRooms=“viewRooms.php”; $(“#createRooms”)。单击(函数(){ $(“#mainContent”).html(a


  • //jQuery使用Ajax将内容加载到另一个div中 var loadUrl=“createHotel.php”; $(“#loadHotel”)。单击(函数(){ $(“#mainContent”).html(ajax_load).load(loadUrl); }); //用于加载酒店-->rooms页面的ajax函数 var url_loadRooms=“viewRooms.php”; $(“#createRooms”)。单击(函数(){ $(“#mainContent”).html(ajax_load).load(url_loadRooms); });
    我还可以用什么来代替
    “#”
    使我的代码整洁?

    我通常使用以下方法:

    href="javascript:void(0);"
    
    将锚点的
    href
    属性设置为
    javascript:void(0)向浏览器指示此锚定不是指向其他文档或锚定的超链接,

    使用“#”字符作为占位符基本上使链接处于“活动”状态。浏览器将其解释为指向其他内容的标记。如果href为空,浏览器将假定a标记只是另一个标记

    一种解决方法是将一些CSS分配给不同的标签,该标签模拟标签的相同功能。在悬停时,更改鼠标、下划线、更改颜色等。您可以轻松更改窗口状态,并使其看起来像用户在单击链接,而实际上他们并没有单击链接,而是在创建一个单击事件


    事实上,这是一个更好的选择,因为通过事件绑定只运行JS函数(如果没有JavaScript就不能使用)首先不应该被视为链接。

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

    <a href="#" onclick="alert('No # in the address bar!'); return false;">Click Me</a>
    
    <a href="" onclick="alert('No change in the address bar!'); return false;">Click Me</a>
    
    我总是用这个:

    href="javascript:void(0);"
    

    最好的解决方案是根本不使用虚拟占位符。使用一个有意义的URL,如果链接确实被跟踪,它将向您显示从AJAX请求中获得的信息

    我经常在我的网络应用程序中这样做,使用Javascript来增强工作站点。例如,HTML:

    <a href="/users/index" rel="popup">View users</a>
    

    这样做的好处很多。屏幕阅读器、网络爬虫和关闭javascript的用户都可以访问您的网站,甚至那些打开javascript的用户也会在状态栏中获得一个有意义的URL,这样他们就知道自己要去哪里了。

    也许我没有得到任何信息,但如果没有链接,您就不应该使用链接

    为什么需要在href中定义任何内容

    这就是SO的工作原理=>

    <a id="close-question-1871874" title="closes/opens question for answering....">
      close<span title="3 more vote(s) needed to close this question"> (2)</span>
    </a>
    
    
    关闭(2)
    
    但是-如果链接应该实际导航到某个地方-保持正常href
    还有就是e.preventDefault()jQuery的常规行为。

    比我快;然而,有几件事应该提到。(除非你想让它成为书签)。这是渐进式强化的反面。只要有可能,
    href
    属性应该是一个实际的URI资源,这样它就可以正常地降级。在所有其他情况下,建议使用“#”,并应使用适当的JavaScript防止页面滚动到顶部。有两种方法可以做到这一点。在单击处理程序中,阻止默认操作或返回false

    $('a[rel*="popup"]').click(function(e) {
        e.preventDefault();
        loadPopup({url: this.href});
    });
    


    大多数地方都有,但有些地方必须去。嗨,安德鲁。。。在我的例子中,当用户单击a标记时,我调用一个更高级别的ajax加载函数。使用href=“javascript:void(0)”将取消ajax调用,浏览器显示“拒绝查看此页面的权限”。@SpikETidE:您使用的浏览器是什么?这个AJAX函数看起来像什么?我的代码在所有主流浏览器中都应该是一样的。。。我的Ajax函数将包含html元素的php页面加载到div中。。当用户单击页面中已有的一个菜单项时,就会发生这种情况。这些菜单项被创建为无序列表,其元素在单击时将调用ajax函数。。希望我很清楚,不要这样做。这里有各种各样的问题,总结得很好:嗨,杰夫。。。正如在这篇文章中指出的,“a”标签可以通过键盘标签访问,而另一种方式则使其成为一个仅限鼠标的元素。。。我希望我的也能通过键盘访问…在这种情况下,我会考虑为击键编写一个事件绑定。另外,我认为您可以在HTML(或类似的东西)中使用taborder属性来允许用户对特定元素进行tab。不确定它是否适用于所有情况。我从来没有试过。在这种情况下,键盘访问有什么好处?此外,您可以将锚定点指向任何类型的URL,但请确保onclick事件处理程序返回false。这将阻止气泡通过,链接将永远无法访问。但是,如果用户禁用了JavaScript,这将为您提供一个解决方案。键盘访问只是为了可用性。。。该链接在菜单中使用,如果用户只需使用tab键即可导航到该链接,则最好使用tabindex。我认为浏览器默认使用锚和表单元素,但您可以在那里添加自己的选项。-这会让您快速了解tabindex,并可能对您的情况有所帮助。一定要使用return false;要停止冒泡,使链接实际上不会触发,只需单击事件。可以做的另一件事是不显示链接悬停时将调用的实际JS函数,而是在状态栏中显示一些文本…@SpikETidE:根据您对给定答案的评论,我认为您有更具体的要求。您可能希望添加到您的帖子中,并确切说明“void(0)”方法不适用于您的原因/方式。@好的。w:添加代码以供参考…这是我在FF 3中使用此方法时收到的警报。。。Firefox不知道如何打开这个地址,因为协议(javascript)与任何程序都没有关联。但是如果禁用javascript,它会工作吗?如果站点打算在禁用javascript的情况下工作,那么使用jquery是没有意义的……SpikEtidE-它是
    javascript:
    javascript:同样,我对nickf的答案投了赞成票
    
    $('a[rel*="popup"]').click(function(e) {
        e.preventDefault();
        loadPopup({url: this.href});
    });
    
    $('a[rel*="popup"]').click(function() {
        loadPopup({url: this.href});
        return false;
    });