1

我已经使用http://www.roblaplaca.com/docs/custom-selectbox/自定义选择框脚本,并且我使用了两个选择框,第二个选择框在第一个选择框的更改事件上使用 AJAX更新。下面是示例 HTML。

<option>One</option>
<option>Two</option>
<option>Three</option>

在 AJAX 成功后,我使用了 sync() 方法来更新我的选择框,内容也得到了更新,但问题是滚动条消失了

我在selectbox.js文件中检查了 sync() 方法,它调用_setupScrollbar(); 内容更新后的方法,但乳清滚动条对此没有任何帮助?

您可以查看演示代码

4

2 回答 2

0

在您的SelectBox.js 中,您需要修改以下代码

(1) 找到这个function _setupScrollbar()并添加这个代码autoReinitialise: true。代码将显示如下。

self.scrollpane = $dl.jScrollPane($.extend({
    contentWidth: 200,
    autoReinitialise: true
}, cfg.scrollOptions));

(2) 找到这个函数this.sync = function()并像下面这样更改代码。

this.sync = function() {
    $options = cfg.selectbox.find("option");
    //$dl.html(_renderOptions());
    $jpane = $customSelect.find("div.jspPane");

    if($jpane.length == 1) // need to check if selectbox having scroll bar?
    {
       $jpane.html(_renderOptions()); //HTML injected to selectbox having scrollbar
    }
    else
    {
       $dl.html(_renderOptions()); //else HTML injected to selectbox not having scrollbar
    }

    _bindHover();
    _setupScrollbar();
};

滚动条不起作用,因为您的 jsPane 被新内容替换,所以我在 sync(); 中更改了以下代码;

// $dl.html(_renderOptions());
$jpane = $customSelect.find("div.jspPane");
if($jpane.length == 1) // need to check if selectbox having scroll bar?
{
   $jpane.html(_renderOptions()); //HTML injected to selectbox having scrollbar
}
else
{
   $dl.html(_renderOptions()); //else HTML injected to selectbox not having scrollbar
}

我希望这能解决你的问题。

于 2013-09-23T08:41:14.213 回答
0

我已经为没有滚动条的选择框修改了下面的@rajnikanth 代码

this.sync = function() {
    $options = cfg.selectbox.find("option");
    //$dl.html(_renderOptions());
    $jpane = $customSelect.find("div.jspPane");

    if($jpane.length == 1) // need to check if selectbox having scroll bar?
    {
       $jpane.html(_renderOptions()); //HTML injected to selectbox having scrollbar
    }
    else
    {
       $dl.html(_renderOptions()); //else HTML injected to selectbox not having scrollbar
    }

    _bindHover();
    _setupScrollbar();
};
于 2013-09-23T10:02:05.390 回答