Dragdealer初始化

时间:2013-02-21 06:10:11

标签: javascript jquery jquery-plugins

编辑 - 由于下面有一位友好的评论者,我设法解决了这个问题。事实证明这是非常基本的,因为我没有在正确的地方调用我的功能。我将函数调用移动到click事件,该事件打开了我正在使用DragDealer的div组,现在它可以工作了。

我正在尝试为我正在构建的网站上的滑块设置Dragdealer插件

在我略微调整浏览器窗口大小之前,我的滑块按钮无法移动。滑块本身在页面加载时处于隐藏div中,因此我将对DragDealer的调用连接到它的父div打开时,但它仍然没有初始化。

<div id="assetTable">
    <div id="assetTableHeaders">
        <div class="investmentHeading odd">Investment option</div>
            <div class="investmentHeading even">Allocation</div>
        </div>
        <div class="investmentOption" id="global_property">
            <div class="investmentTitle"><a href="#">Global Property</a></div>
            <div class="investmentSlider">
                <div class="slider short">
                    <div class="slider-bg">
                        <div class="slider-indicator"><div class="active">&nbsp;</div></div>
                <div id="slider_global_property" class="dragdealer">
                                                <div class="handle ir" style="left: 208px;">Drag</div>
                </div>
            </div>
        </div>
    </div>
    <div class="investmentInput">
    <input type="text" id="input_global_property" class="investmentPercent" name="input_global_property" value="0%">
</div>
</div>
</div>  

“asseTtable”被隐藏,直到通过jquery

的onclick处理程序展开
function setUpSliders() {
var val_global_property = document.getElementById('input_global_property');

var sliderGlobalProperty = new Dragdealer('slider_global_property',
    {
        steps: 100,
        animationCallback: function(x, y)
    {
        val_global_property.value = (Math.round(x * 100) + '%');
    }
});

$('#input_global_property').change(function(){
    sliderGlobalProperty.setStep(stripPercentages());
        return false;
    });

}

$('#investmentOption_selfSelect').click(function(){
    setUpSliders();
});

2 个答案:

答案 0 :(得分:2)

我遇到了与DragDealer相同的问题,并通过Google找到了这个答案。 我正在使用JQuery从一个HTML页面视图转换到另一个,如图所示,我在fadeOut / fadeIn完成之前调用了我的setUpSliders()。阅读完这个答案后,我改变了代码,在fadeIn完成后调用setUpSliders()。这解决了这个问题。这个例子可以帮助别人。

//switch from Home page to Charts page DOM
var switchToChartsPage = function () {
    $("#HomePage").fadeOut(fadeOutTime, function () {
        $("#chartsPage").fadeIn(fadeInTime, function () { setUpSliders(); }); 
        //Note: delay setting up DragDealer sliders until after DOM settles
    });
    startChartPage();
}

var startChartPage = function () {
    showPanels = true; //initialization switch
      <some code removed>
    carouselPaneCount = buildCharts(); //build the charts and tables html
    //setUpSliders(); // do NOT set up the sliders here - see comment above
    $(".chartspagetitle").text(pageTitleTextLine[currentLocalStorageKey]);
}

答案 1 :(得分:1)

由于友好的评论者@Juhana,我设法解决了这个问题。事实证明这是非常基本的,因为我没有在正确的地方调用我的功能。我将函数调用移动到单击事件,该事件打开了我正在使用DragDealer的div组,现在它可以正常工作。