0

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

通常,您可以使用 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 解决方案。

4

1 回答 1

1

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

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

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

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

于 2013-06-29T16:37:53.113 回答