jQuery-UI Slider - 在'create'事件期间无法选择滑块手柄

时间:2013-06-29 16:25:44

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

我将滑块值作为文本插入滑块手柄本身,滑动时工作正常。但我也需要在pageload上显示该值,这意味着我需要在首次初始化滑块时注入值,而我无法确定如何执行此操作。

通常你可以使用ui.handle获取句柄,但是根据'create'事件的文档“ui对象是空的,但为了与其他事件保持一致而被包含”。

这是init函数。页面的标记与问题无关,因为唯一涉及的标记是滑块内的句柄('a'标签),由jQuery-ui本身创建。

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解决方案。

1 个答案:

答案 0 :(得分:1)

也许我错过了什么,但为什么不用text()设置文本?

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

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

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