jquery.nicescroll tabindex 值错误
jquery.nicescroll with wrong tabindex value
我按照 jQuery.NiceScroll 编辑了滚动条。通常,当我调用 $(selector).niceScroll()
时,它会将 tabindex
和一些 css 属性附加到选择器中。像这样:
$('p.lead').niceScroll({autohidemode: false});
然后,id以ascrail
开头的2个div也将附加到<body>
。
如您所见:如果 tabindex
是 5000
,那么 2 个新 ID 将是 ascrail2000
和 ascrail2000-hr
。
这意味着我们可以通过以下方式访问 <div>
:
var id = 2000 + (+$('p.lead').prop('tabindex') - 5000);
var vertical = $('div#ascrail' + id);
var horizontal = $('div#ascrail' + id + '-hr');
//do stuff...
这很好,直到我使用 jQuery BlockUI 将一些 div 显示为弹出窗口:
<div class="new-topic">
<!-- another divs -->
<div id="tab-content5" class="tab-content">
<div class="n-images">
</div>
</div>
<!-- another divs -->
</div>
脚本:
$.blockUI({
message: $('div.new-topic'),
css: {
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
border: 'none',
cursor: 'default',
borderRadius: '5px',
width: ''
}
});
$('div.n-images').niceScroll({autohidemode: false});
然后,我查看了页面源,tabindex
被覆盖了:
但它不适用于 div[id^="ascrail"]
:
现在,如何更改 div#ascrail2001
和 div#ascrail2001-hr
中的 css 属性 z-index
?
这种方式无法正常工作:
//this will return 2000 instead of 2001
var id = 2000 + (+$('div.n-images').prop('tabindex') - 5000);
//if I can get the id correctly, every thing will became easy:
//change z-index: auto -> z-index: 10001
//because if z-index is smaller than 10000, it won't appear
$('div#ascrail' + id).css('z-index', 10001);
$('div#ascrail' + id + '-hr').css('z-index', 10001);
我的问题是:$(selector).niceScroll()
没有检查现有的 tabindex 值并更新新的 tabindex 值。 (现有值:5000,新值:5001)。
所以,我的问题是:在这种情况下如何更新 tabindex 的新值?
p/s:我使用的是 mvc 5。<p class="lead">
在另一个局部视图中,不同于 <div class="n-images">
。
我解决了问题。那是因为我添加了
<script src"~/Scripts/jquery.nicescroll.js"></script>
在 2 个局部视图中两次。
我试图删除它们,打开 App_Start
文件夹中的 BundleConfig.cs
并添加了这一行:
bundles.Add(new ScriptBundle("~/bundles/nicescroll").Include(
"~/Scripts/jquery.nicescroll.js"));
应该可以。感谢阅读!
我按照 jQuery.NiceScroll 编辑了滚动条。通常,当我调用 $(selector).niceScroll()
时,它会将 tabindex
和一些 css 属性附加到选择器中。像这样:
$('p.lead').niceScroll({autohidemode: false});
然后,id以ascrail
开头的2个div也将附加到<body>
。
如您所见:如果 tabindex
是 5000
,那么 2 个新 ID 将是 ascrail2000
和 ascrail2000-hr
。
这意味着我们可以通过以下方式访问 <div>
:
var id = 2000 + (+$('p.lead').prop('tabindex') - 5000);
var vertical = $('div#ascrail' + id);
var horizontal = $('div#ascrail' + id + '-hr');
//do stuff...
这很好,直到我使用 jQuery BlockUI 将一些 div 显示为弹出窗口:
<div class="new-topic">
<!-- another divs -->
<div id="tab-content5" class="tab-content">
<div class="n-images">
</div>
</div>
<!-- another divs -->
</div>
脚本:
$.blockUI({
message: $('div.new-topic'),
css: {
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
border: 'none',
cursor: 'default',
borderRadius: '5px',
width: ''
}
});
$('div.n-images').niceScroll({autohidemode: false});
然后,我查看了页面源,tabindex
被覆盖了:
但它不适用于 div[id^="ascrail"]
:
现在,如何更改 div#ascrail2001
和 div#ascrail2001-hr
中的 css 属性 z-index
?
这种方式无法正常工作:
//this will return 2000 instead of 2001
var id = 2000 + (+$('div.n-images').prop('tabindex') - 5000);
//if I can get the id correctly, every thing will became easy:
//change z-index: auto -> z-index: 10001
//because if z-index is smaller than 10000, it won't appear
$('div#ascrail' + id).css('z-index', 10001);
$('div#ascrail' + id + '-hr').css('z-index', 10001);
我的问题是:$(selector).niceScroll()
没有检查现有的 tabindex 值并更新新的 tabindex 值。 (现有值:5000,新值:5001)。
所以,我的问题是:在这种情况下如何更新 tabindex 的新值?
p/s:我使用的是 mvc 5。<p class="lead">
在另一个局部视图中,不同于 <div class="n-images">
。
我解决了问题。那是因为我添加了
<script src"~/Scripts/jquery.nicescroll.js"></script>
在 2 个局部视图中两次。
我试图删除它们,打开 App_Start
文件夹中的 BundleConfig.cs
并添加了这一行:
bundles.Add(new ScriptBundle("~/bundles/nicescroll").Include(
"~/Scripts/jquery.nicescroll.js"));
应该可以。感谢阅读!