我将一个select-element添加到DOM节点并动态填充它,这在Firefox和Safari中很适用。不幸的是,当我点击选择框时,它简单不会在Internet Explorer中下拉。任何想法在这里出了什么问题?在IE7中添加元素
$('<select size="1">').appendTo(
$('#mytable tbody')
.find('tr:last')
.find('th.col1')
)
.attr('id', 'select_' + counter)
.append('<option>New Option</option>')
.click(function() {
var t = $(this);
// Get matching alternatives as json
$.getJSON(Drupal.settings.basePath + 'mymodule/product_cat/' + data['product_category'], function(cat_data) {
t.find('option').remove();
$.each(cat_data, function(i,item){
t.append($("<option value='" + JSON.stringify(item) + "'>" + item.name + "</option>"));
});
t.find('option:first').attr('selected', 'selected');
});
})
.change(function() {
tmparr = $(this).attr('id').split('_');
set_row_data($(this).parent().parent(), $(this).val());
});
}
- 更新 -
我考察的选择框包含IE7更新后的代码 - 它通过JSON seeem得来的DOM树正确插入选项,因此它看起来问题在别的地方。任何想法赞赏。
- UPDATE 2 -
IE7的问题似乎是在。点击() - 功能:
如果我把一些像这样的代码:
$('#myelement').append('<option>foo</option>');
即使在IE7中也能正常工作。
如果我把它变成像这样的点击功能:
$('#myelement').click(function() {
$(this).append('<option>foo</option>');
});
出现的问题。
- 解决方案 -
什么没人注意到(以上所有:我),是,我的第一行是越野车:
$('<select size="1">').appendTo(...
应该
$('<select size="1"></select>').appendTo(...
现在工作,无论如何感谢所有人。
你能详细说明一下吗? – schneck 2009-12-09 12:52:43
感谢您的建议 - 我现在实现了两个(建议标题和URL修改),但它不能解决问题。选择框的内容似乎“滑落了几个像素”,不会再点击下拉。 – schneck 2009-12-09 13:06:38