Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.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
Jquery单击[href=”打开站点“]无法使用链接_Jquery_Html_Function_Navigation_Click - Fatal编程技术网

Jquery单击[href=”打开站点“]无法使用链接

Jquery单击[href=”打开站点“]无法使用链接,jquery,html,function,navigation,click,Jquery,Html,Function,Navigation,Click,我有一个如下所示的导航: <ul> <li><a href="index.html#open-site">Test</a></li> <li><a href="#open-site">Test</a></li> <li><a href="test.html#open-site">Test</a></li> </u

我有一个如下所示的导航:

<ul>
    <li><a href="index.html#open-site">Test</a></li>
    <li><a href="#open-site">Test</a></li>
    <li><a href="test.html#open-site">Test</a></li>
</ul>
我想要的是,如果我在index.html上点击'index.html#open site',页面将不会重新加载,但会触发单击功能并显示div


如果我在test.html等其他子页面上点击'index.html#open site',index.html将被加载,div将立即显示。

每个选项都应该有一个选择器

<ul>
    <li id="site1"><a href="index.html#open-site">Test</a></li>
    <li id="site2"><a href="#open-site">Test</a></li>
    <li id="site3"><a href="test.html#open-site">Test</a></li>
</ul>

然后您尝试在这些选择器上触发一个事件。

希望我理解您的意思。希望它能帮助你

jQuery('a[href="#open-site"]')
它严格按照选择器搜索元素

jQuery('a[href="#open-site"]')
它只返回href=#open site的元素

要查找具有相同参数但不严格符合上述示例的所有元素,需要筛选所有元素以查找必要的元素。 我的代码示例并不理想,但它是您可以做的示例

jQuery('a').each(function(index) {
    // we search the links with param in href attr from all links to attach the function
    if (jQuery(this).attr('href').search('#open-site') !== -1) {
        jQuery(this).click(function (e) {
            // e = event
            // e.preventDefault stops default behavior (changing location)
            e.preventDefault();
            jQuery('#content').animate({"left": "0px"});
        });
    }
});

一个关于

的例子不要使用锚。您可以设置自己的属性。类似这样的内容:jQuery('a[youratr=“open site”]”)。单击(函数(){jQuery('#content')。动画({“left”:“0px”});})是的,我也这么认为,但有一个问题。我不是每个菜单项都有一个div。相反,我有一个名为“页面”的div,其中的内容通过cms加载。因此,如果我按照你的方式来做,我必须找到一种方法,通过cms向页面div添加一个id或一个类,关于我在哪个子页面上,并且我必须为每个子页面定义一个jquery函数。这不是很动态。如果我单击的链接使页面处于im状态,我只想触发jquery函数,而不是重新加载页面。如果是另一个子页面,站点将重新加载并显示div。这已经很好了。谢谢!这几乎就是我想做的。但是我希望只有当点击的链接与当前页面相等时才会发生这种情况。所以我需要的是比较点击链接和当前页面的更多if查询。如果合格,则执行e.prevenDefault();如果没有,则重定向到单击的链接。问题是,我不知道如何从像“www.x.com/index.html”这样的整个url中只获取“index.html”或“index”部分。它还必须是动态的,因为我不知道最终的url。抱歉,回答太晚:)你可以检查url和链接的href来决定是否停止事件。例如
if(jQuery().attr('href').split('#')[0]==''window.location.href.search(jQuery().attr('href').split('#')[0])>-1{//preventDefault&animate}
此检查应用于包装事件停止和动画功能