【问题标题】:jQuery-UI Slider - Cannot select slider handle during 'create' eventjQuery-UI Slider - 在“创建”事件期间无法选择滑块句柄
【发布时间】:2023-04-03 21:07:01
【问题描述】:

我将滑块值作为文本插入到滑块句柄本身内,滑动时效果很好。但我还需要在页面加载时显示该值,这意味着我需要在第一次初始化滑块时注入该值,而我无法确定如何执行此操作。

通常您可以使用 ui.handle 获取句柄,但根据“创建”事件的文档“UI 对象是空的,但包含在内是为了与其他事件保持一致”。

这是初始化函数。页面的标记大多与问题无关,因为唯一涉及的标记是由 jQuery-ui 本身创建的滑块内的句柄(“a”标记)。

function initMapWidget(){
  var map = $('#popup-about-ourstory').children('.map')
  , slider = $(map).find('#map-slider')
  , yearStart = 1983
  , yearEnd = 2013
  ;

  $(slider).slider({
    min: yearStart,
    max: yearEnd,
    create: function( event, ui ){
      $(slider).children('a').innerHTML = yearStart;
    },
    slide: function( event, ui ){
      ui.handle.innerHTML = ui.value;
    }
  });
});

如果可能的话,我真的很想远离 setTimeout 解决方案。

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-slider


    【解决方案1】:

    也许我遗漏了什么,但为什么不用 text() 设置文本呢?

    slider.children('a').text(yearStart);
    

    此 innerHTML 属性不适用于 jQuery 包装的元素。

    http://jsfiddle.net/blackjim/5eCU9/

    【讨论】:

    • 我早该知道它会这么简单。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2011-05-06
    • 2011-12-12
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多