锚标记正在向我的 id 链接添加路径

Posted

技术标签:

【中文标题】锚标记正在向我的 id 链接添加路径【英文标题】:Anchor tag is adding a path to my id link 【发布时间】:2014-01-16 20:19:59 【问题描述】:

我有一个包含链接的用户控件,单击它时我想打开一个导航作为弹出菜单。我正在使用 jQuery mobile,并且我已经为我的导航提供了一个 id,并且链接根据需要指向它。

这在一个页面上没有任何问题,但是当我将控件添加到另一个页面时,它会将链接上的 href 属性更改为“Controls/#menu”,而不是打开 div,它会尝试重定向(和显示 Controls 目录)。

html

<a id="lnkMenu" runat="server" href="#menu" data-rel="popup" data-icon="grid"
data-iconpos="right" data-transition="pop" data-position-to="window">Menu</a>

<nav id="menu" data-role="popup" data-overlay-theme="a">
    <ul data-role="listview" data-inset="true" data-count-theme="b">
        <!-- Some <li>s with menu options -->
    </ul>
</nav>

当我加载页面时:

<a data-position-to="window" data-transition="pop" data-iconpos="right"
data-icon="grid" data-rel="popup" id="ctl00_Banner2_mobileProfileMenu_lnkMenu"
href="Controls/#menu" class="ui-btn-right ui-btn ui-shadow ui-btn-corner-all
ui-btn-icon-right ui-btn-up-c" data-corners="true" data-shadow="true"
data-iconshadow="true" data-wrapperels="span" data-theme="c" aria-haspopup="true"
aria-owns="Controls/#menu">
    <span class="ui-btn-inner">
        <span class="ui-btn-text">Menu</span>
        <span class="ui-icon ui-icon-grid ui-icon-shadow">&nbsp;</span>
    </span>
</a>

我正在使用:

jQuery 1.10.2 jQuery UI 1.10.3 jQuery Mobile 1.3.1

据我所知,没有修改控件的自定义 javascript,而且我已经在一个地方工作,它只是在其他地方中断。两个页面之间的唯一区别是它的工作原理我没有使用 jQuery UI。如果我手动编辑页面(例如使用 firebug 或 chrome 开发工具)来修复 href,它会按预期工作。

如果相关,用户控件正在另一个目录中的页面中使用,并且在站点的根目录中具有母版页。所有的 javascript 都加载到母版页上。

编辑:我尝试从问题页面中删除 jQuery UI,但问题仍然存在。

【问题讨论】:

看来您使用的是 ASP.NET,它有时会更改某些服务器控件的生成 href 属性 【参考方案1】:

删除一些自定义 javascript 并删除 jQuery UI 后,我能够使弹出窗口正常工作(自定义 javascript 使用的是 jQuery UI)。 href 似乎仍然添加了链接的路径,但它正在工作,所以我想这是一个胜利。

如果其他人最终遇到此问题,请尝试删除 jQuery UI。我感觉它与 jQuery Mobile 配合得不好。

【讨论】:

以上是关于锚标记正在向我的 id 链接添加路径的主要内容,如果未能解决你的问题,请参考以下文章

当我将鼠标从菜单上的锚标记链接移动时,我的下拉菜单不显示

javascript 为链接到页面上的ID的锚标记提供平滑滚动。

如何使用打字稿在表格的单元格中动态插入锚标记?

如何从 URL 中删除锚标记?

使用锚标记链接到 Django 中另一个应用程序(页面)中的特定 div

如何在文本C#中用超链接/锚标记替换带有括号的url