jQuery UI Slider Bar - 在Firefox中无法正常显示

时间:2011-11-17 15:31:15

标签: jquery css jquery-ui firefox jquery-ui-slider

早上好,

我有一个应用程序,允许用户滑动不同类别的值,总计高达100%。它在Safari,Chrome甚至IE中运行良好,但在Firefox中,可拖动的句柄不会显示在正确的位置,而是显示在包装div的顶部。

我仍然可以点击它们应该拖动它们的栏,这让我相信这只是一个CSS问题。

我使用标准的jQuery UI主题滚轮,无需编辑任何内容。

用于渲染滑块的代码是:

function bind_slider_bar (category) {

    $(slider_id (category) ).slider({
        min     :   0,
        max     :   100,
        value       :   budget.slider_values[category],
        start       :   function (e, ui) {
            budget.category = $(this).attr('id').replace('_slider','');
                    //sets the current global value to the slider being dragged, so the correct values get set, and the others are decreased if necessary.
        },
        stop        :   function (e, ui) {
            update_available_budget();
            populate_distribution_fields();
            update_distribution_notifiers();

        },
        slide       :   function (e, ui) {
            update_available_budget();
            populate_distribution_fields ();
            update_distribution_notifiers();
            var my_position = $( slider_id (category) ).slider("value");
            $( draggable_handle ( category ) ).css('left', my_position);
        }
    });

}

应用程序的URL位于clearpointccs.org/holiday-planner - 我知道滑块/计算上的逻辑仍然有点错误,但我可以应对的逻辑。 firefox bug我不能。要测试它,您可以将初始收入字段留空。

谢谢,

汤姆

2 个答案:

答案 0 :(得分:1)

你需要将滑块容器从td元素中取出,它不适合处理滑块,因为它们以绝对定位运行。

更改滑块容器元素
<td id="gifts_slider"></td>
<td id="parties_slider"></td>
<td id="travel_slider"></td>
<td id="food_slider"></td>
<td id="donations_slider"></td>

<td><div id="gifts_slider"></div></td>
<td><div id="parties_slider"></div></td>
<td><div id="travel_slider"></div></td>
<td><div id="food_slider"></div></td>
<td><div id="donations_slider"></div></td>

答案 1 :(得分:0)

而不是将表格单元格转换为滑块(我不认为jQuery支持它,但我可能错了,所有示例都使用div。)。在表格单元格中放置一个div,并将其用作滑块容器。

如果你添加

display: block:

td的CSS然后正确包含拇指。但随后尺寸将会消失。