2013-07-29 39 views
0

我尝试了几件事情,试图使这项工作,我不知道是否有可能。我有选择的插件(http://harvesthq.github.io/chosen/)。我想要做的是以下几点:jquery更新选项

  • 检查每一个选项
  • 的长度,如果该选项比一定规模 更大*切,并添加“...” *添加工具提示的充分字符串

工具提示工作正常,我不管理的是用新(...)字符串重新绘制选择。所选的字符保持全字符串。

这里是我的代码

$("select").chosen().each(function() { 
$(this).on("liszt:showing_dropdown", function() { 

    if($(this).parent().is('.myContentClass')){ 
     $(this).next().find('li').each(function(){ 
     var size = measureText($(this).text(), 12, 'Tahoma') 
     var limit = MyWidth - 50; 

     if(size.width > limit){ 

      var tmp_str = $(this).text(); 
      var dot_limit = MyWidth.width() - 60; 

      while(measureText(tmp_str, 12, 'Tahoma').width > dot_limit){ 

      tmp_str = tmp_str.substring(0, tmp_str.length - 1); 
      } 

      tmp_str = tmp_str + '...'; 
      //console.log(tmp_str) here im getting the correct string 

      $(this).attr('title', $(this).text()); 
      $(this).text(tmp_str); // :(

      //$("select").chosen().trigger("liszt:updated"); //not working 
      $('#tiptip_content').css('font-size', '13px'); 
      $(this).tipTip({ 
      maxWidth: "auto", 
      defaultPosition: "left", 
      fadeIn: 100, 
      fadeIn: 100, 
      attribute: "title" 
      }); 
     } 
     $(this).trigger("change"); //not working 
     }); 
    } 

}); 

});

+1

不是做所有这些工作,你认为这样使用CSS?所有你需要的是对每个项目,这些CSS规则: '溢出:隐藏;' '白色空间:NOWRAP;' '文本溢出:省略号;' –

回答

1

找出div/span保存的选项,添加这些规则,它的选择:与其

overflow: hidden; 
white-space: nowrap; 
-o-text-overflow: ellipsis; 
-ms-text-overflow: ellipsis; 
text-overflow: ellipsis; 
+1

无需任何再为' - o-text-overflow'和'-ms-text-overflow' ...它们是支持的浏览器中文本溢出的同义词。请参阅http://caniuse.com/text-overflow –

+0

我刚从我的浏览器生成的规则复制了规则。不管怎样,谢谢。正式指出。 – cowboybebop

+0

也没有看到您对原帖的评论。抱歉。 – cowboybebop