jquery.nicescroll有错误的tabindex值

时间:2015-12-10 09:55:45

标签: javascript jquery css nicescroll

我跟着jQuery.NiceScroll编辑了滚动条。通常,当我调用$(selector).niceScroll()时,它会将tabindex和一些css属性附加到选择器中。像这样:

$('p.lead').niceScroll({autohidemode: false});

p

然后,ID为ascrail的2个div也会附加到<body>

_p

如您所见:如果tabindex5000,则有2个新ID ascrail2000ascrail2000-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被覆盖了:

i

但它不适用于div[id^="ascrail"]

_i

现在,我如何更改z-indexdiv#ascrail2001中的css属性div#ascrail2001-hr

这种方法无法正常工作:

//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">不同的局部视图中。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。那是因为我添加了

<script src"~/Scripts/jquery.nicescroll.js"></script>

在2个部分视图中两次。

我尝试删除它们,在BundleConfig.cs文件夹中打开App_Start并添加以下行:

bundles.Add(new ScriptBundle("~/bundles/nicescroll").Include(
                        "~/Scripts/jquery.nicescroll.js"));

它应该工作。谢谢你的阅读!