gpt4 book ai didi

单击可折叠项时 jQuery Mobile 页面跳转到顶部

转载 作者:行者123 更新时间:2023-12-01 00:10:20 25 4
gpt4 key购买 nike

我有一个带有面板导航的 jQuery Mobile 页面。最后两个元素可与其他菜单项折叠。展开或折叠这些会导致页面跳转到顶部,用户必须再次向下滚动才能选择显示的条目之一。

我试图通过在可折叠div的点击事件中执行.preventDefault()来抑制这种行为,但页面仍然跳到顶部。

有谁知道如何防止这种情况吗?

提前致谢。

我的 HTML:

<div data-role="panel" id="panel" data-position="left" data-theme="a" data-display="overlay" data-position-fixed="true" >
<ul class="ui-listview" id="main_nav" data-role="listview" data-theme="a" >
<!-- lots of other items -->
<li class="custom-li" data-icon="carat-r" >
<div data-role="collapsible" data-iconpos="right" class="custom-collapsible" data-theme="a">
<h2>Mein Account</h2>
<ul class="ui-listview mainNav" data-role="listview" data-theme="a" >
<li id="nav_account" data-icon="carat-r">
<a href="#" onclick="return ajax_content('settings/account');" data-rel="close">Account Verwalten</a>
</li>
<li id="nav_profile_edit" data-icon="carat-r">
<a href="#" onclick="return ajax_content('settings/profile_edit');" data-rel="close">Profil bearbeiten</a>
</li>
<li id="nav_profile_interview" data-icon="carat-r">
<a href="#" onclick="return ajax_content('settings/profile_interview');" data-rel="close">Profil Interview bearbeiten</a>
</li>
<li id="nav_profile_pic" data-icon="carat-r">
<a href="#" onclick="return ajax_content('settings/profile_pic');" data-rel="close">Profilbild hochladen</a>
</li>
</ul>
</div>
</li>
<li class="custom-li" data-icon="carat-r" >
<div data-role="collapsible" data-iconpos="right" class="custom-collapsible" data-theme="a">
<h2>AGB / Impressum</h2>
<ul class="ui-listview mainNav" data-role="listview" data-theme="a" >
<li id="nav_profile_edit" data-icon="carat-r">
<a href="#" onclick="ajax_content('impressum')" data-rel="close">Impressum</a>
</li>
<li id="nav_profile_intervview" data-icon="carat-r">
<a href="#" onclick="ajax_content('agb')" data-rel="close">AGB</a>
</li>
<li id="nav_profile_pic" data-icon="carat-r">
<a href="#" onclick="ajax_content('datenschutz')" data-rel="close">Datenschutz</a>
</li>
</ul>
</div>
</li>
</ul>
</div>

自定义 CSS:

#main_nav .custom-li {
padding: 0 !important;
border-width:0 !important;
}

#main_nav .custom-bottom-li {
border-top-width: 0 !important;
}

#main_nav .custom-collapsible {
margin-top:-7px;
margin-bottom: -9px;
border-bottom-right-radius: 0 !important;
border-bottom-left-radius: 0 !important;
border-top-right-radius: 0 !important;
border-top-left-radius: 0 !important;
border-width:0 !important;
}

#main_nav .ui-collapsible-content{
margin-top: -7px !important;
margin-bottom: 7px !important;
}

最佳答案

这似乎是一个 Unresolved 错误:
https://github.com/jquery/jquery-mobile/issues/7055
https://github.com/jquery/jquery-mobile/issues/6688

作为目前的原始修复,可以将这样的脚本放置在对 jQuery Mobile 源代码的引用之后:

$(function() {
$.mobile.panel.prototype._positionPanel = function() {
var self = this,
panelInnerHeight = self._panelInner.outerHeight(),
expand = panelInnerHeight > $.mobile.getScreenHeight();

if ( expand || !self.options.positionFixed ) {
if ( expand ) {
self._unfixPanel();
$.mobile.resetActivePageHeight( panelInnerHeight );
}
//window.scrollTo( 0, $.mobile.defaultHomeScroll );
} else {
self._fixPanel();
}
};
});

这将覆盖小部件内部方法(请注意注释行),而无需直接更改 jQuery Mobile 源代码(从 CDN 加载框架时这是不可能的)。

这是 live example .

关于单击可折叠项时 jQuery Mobile 页面跳转到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21264509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com