我正在使用带有 jQuery tmpl 插件的 Knockout.js。我定义的模板有几个选择列表。单击选择列表(以容纳列表中最长的元素)时,我需要扩展选择项的宽度(在 IE 8 上)。当用户单击选择列表以实现此目的时,我正在考虑切换 css 类,但不知道如何去做。这是我到目前为止所拥有的:
//CSS classes
<style>
.bigclass
{
width: 200px;
}
.normalclass
{
width: auto;
}
</style>
// Call makeBig javascript method on mouseover.
<script id='criteriaRowTemplate' type='text/html'>
<tr>
<td style="width: 23%"><select style="width: 100%" data-bind='event: { mouseover: makeBig, mouseout: makeNormal}, options: criteriaData, optionsText: "Text", optionsCaption: "--Select--", value: SearchCriterion' /></td>
</tr>
</script>
var CriteriaLine = function() {
this.SearchCriterion = ko.observable();
//Control comes to this method. Not sure though if the element captured is correct.
makeBig = function(element) {
$(element).addClass("bigclass")
};
makeNormal = function(element) {
$(element).addClass("normalclass")
};
};
所以我的问题是:
我们如何将选择列表传递给 makeBig javascript 函数?我相信我需要在我的代码中更改以下语法: data-bind='event: { mouseover: makeBig, mouseout: makeNormal
我们如何将类添加到传递的选择列表中。我已经添加了代码,但它不起作用,可能是因为元素没有值。
或者,是否有任何其他方法可以确保用户在 IE 8 中看到下拉列表的全文?