JQWidgets:向jqxComboBox添加autoWidth方法

时间:2015-10-12 11:17:38

标签: javascript jquery jqwidget

我正在尝试开发一种计算jqxComboBox最佳宽度的方法。 我首先编写了一个名为widthFit的函数,它执行以下操作:

  1. 在jqxComboBox
  2. 列表中找到文本最长的项目
  3. 根据当前主题查找该文本的宽度(以像素为单位)。这是通过创建隐藏并获得其宽度(如下面的代码所示)
  4. 来完成的

    	function widthFit(data,displayMember)
    	{
    		var font_size=$(".jqx-widget").css("font-size");
    		var font_name=$(".jqx-widget").css("font-name");
    		var n=data.length;
    		var width=0;
    		var lbl='';
    		for (i=0;i<n;i++)
    		{
    			item= data[i][displayMember];
    			if(item.length>width)
    			{
    				width=item.length;
    				lbl=item;
    			}
    		}
    		$("body").append($("<span id='string_span' style='font-name: "+font_name +"; font-size:"+font_size+"'>"+lbl+"</span>"));
    		$("#string_span").hide();
    		width=$("#string_span").width();
    		$("#string_span").remove();
             // +50px to fit the down-arrow button    		
             return width+50;
    		
    	}

    然后在jqxComboBox的bindingComplete事件中,我添加了一个调用,使用我创建的函数调整窗口小部件的宽度,如下所示:

    $("#jqxComboBox").on('bindingComplete', function (event) {
          $("#jqxComboBox").jqxComboBox({width:widthFit(data,"title")});
      });

    我得到了我想要的东西,但组合的“头部”没有正确调整大小,如下图所示: enter image description here

    这是一个显示整个代码的JSFIddle链接。 http://jsfiddle.net/MedYounes/L23x6u4n/

    如果我找到这方面的帮助,我会很高兴。

0 个答案:

没有答案