var select_tag = $('<select></select>').attr( {
onchange: 'createDiscipline()',
class: 'select_menu'}
).fadeIn('slow');
这适用于 FF,但不适用于 Chrome。 Chrome 中发生的情况是,类已设置,但 createDisicipline() 未设置。
这是向标签添加多个属性的错误方法吗?它在 FF 中有效:/
完整代码:
var select_tag = $('<select>', {
onchange: createDiscipline,
'class': 'select_menu'}
).fadeIn('slow');
for(i = 0; i < c_data.length; i++) {
select_tag.append('<option>' + c_data[i] + '</option>');
}
//wrap select_tag in div
var div_buffer = $('<div class=\'select_buffer\'></div>');
var div_container = $('<div class=\'select\'></div>');
div_buffer.append(select_tag).wrap('<div class=\'select_buffer\' />');
div_container.append(heading);
div_container.append(div_buffer);
//Append to the page after right_content id
$('#right_content').append(div_container)
最佳答案
您绝对不应该尝试绑定(bind)这样的事件处理程序。以不引人注目的方式进行:
var select_tag = $('<select>', {
change: createDiscipline,
'class': 'select_menu'
}).appendTo(document.body).fadeIn('slow');
请注意我的更改。我包裹了class
用引号引起来,因为它是 InternetExplorer 中的关键字,否则可能会破坏您的代码。我还附加了新创建的 <select>
节点到 document.body。
关于jquery attr 在 Chrome 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5044912/