Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对剑道ui输入符的宽度使用敲除_Javascript_Css_Knockout.js_Kendo Ui_Width - Fatal编程技术网

Javascript 对剑道ui输入符的宽度使用敲除

Javascript 对剑道ui输入符的宽度使用敲除,javascript,css,knockout.js,kendo-ui,width,Javascript,Css,Knockout.js,Kendo Ui,Width,我在durandal项目中工作(javascript和html在单独的页面中编写)。 我有剑道组合,我通过声明wrraper输入宽度来给它宽度。 它工作得很好。但当我把它改成装订时,它就不起作用了。 这是我的代码(不起作用): html: <input id="kendoCombo" data-bind=" value:'444', style:{width:width}, kendoDropDownList: { dataSource: data, dat

我在durandal项目中工作(javascript和html在单独的页面中编写)。 我有剑道组合,我通过声明wrraper输入宽度来给它宽度。 它工作得很好。但当我把它改成装订时,它就不起作用了。 这是我的代码(不起作用):

html:

<input id="kendoCombo" data-bind=" value:'444', style:{width:width},
        kendoDropDownList: { dataSource: data,
        dataValueField:itemValue,
        dataTextField: itemText,
        value:selectedId,
        template: template,
        change:onChange}" />
width:ko.observable('100px')
当我的宽度还没有装订好时,效果很好。以下是我以前的html代码:

<input style="width:100 
      id=" kendoCombo " 
      data-bind=" value: '444',
      kendoDropDownList: { dataSource: data,      
                           dataValueField:itemValue,
                           dataTextField: itemText,
                           value:selectedId, 
                           template: template,
                           change:onChange} " />

问题是剑道在初始化时只设置
下拉列表的
宽度
一次,因此当Knockout更新样式绑定中的
宽度
时,它对
下拉列表
没有影响

但是,您可以在
kendoDropDownList
wrapper
属性(要求:2013年第1季度(2013.1.319版)或更新版本)上设置
width
,并且您可以将此逻辑放入自定义bindingHandler中:

ko.bindingHandlers.kendoDropDownListWidth = {
    update: function (element, valueAccessor) {
        var dropdownlist = $(element).data("kendoDropDownList");
        dropdownlist.wrapper[0].style["width"] = 
            ko.utils.unwrapObservable(valueAccessor());
    }
};
然后像这样使用它:

<input id="kendoCombo" data-bind=" value:'444', 
        kendoDropDownListWidth: width,
        kendoDropDownList: { dataSource: data,
        dataValueField:itemValue,
        dataTextField: itemText,
        value:selectedId,
        template: template,
        change:onChange}" />


演示。

您使用的是哪个KO版本?为什么要绑定宽度?您是只想初始化一次下拉列表宽度,还是想稍后再更新它,例如使用
width('50px')
ebram tharwat,您的示例不包括剑道ui组合。常规输入的绑定宽度-我知道我也要这样做。nemesv-我使用2.3.0版,我想绑定宽度,因为我想以后更改。@user3127364
kendoDropDownList
的宽度在初始化期间只设置一次,所以即使不使用knockout,也无法在以后设置。所以你可能需要改变KendoUi的来源来让它工作……我试过了,效果很好。非常感谢。现在我有一个问题:我给html输入元素宽度“206px”。对于kendoDropDownListWidth,我给出了‘206px’(也通过bindingHandler),但它看起来不一样。所以我给throus bindinghandler宽度“220px”,知道它看起来像输入。我的朋友,我是否可以使用其他属性(其他,而不是kendoDropDownList)?