我的选择标签(filterBA)上有一个单击事件,然后动态生成选项。jQuery获取生成的元素属性FF vs IE问题
$("#filterBA").click(function(event){
var $tgt = $(event.target);
if($tgt.is('option')){
if($tgt.attr('id') != 0){
sortRowsByBA($tgt.attr('id'));
}else{
appendOrReplaceRows("replace", getSortColumn(), getAscdesc());
}
}
});
这在Firefox中很好用,但是IE不会重新设置我的$ tgt作为选项。我检查加入:
$("#filterBA").click(function(event){
var $tgt = $(event.target);
alert($tgt.is('option'));
...
而且不管它返回的是否为false。但在FF中,它返回真正的VI我按住我的鼠标选择一个选项。我不明白,因为当我必须选择一个用于我创建的自定义选择列表(在同一系统中)的div时,我使用相同的方法,但是当点击事件在标签上时,它不会工作。
有人知道什么可能是错的?
btw。这里是我的函数生成的选项:
function pupulateBA(){
$selectTag = $('#nav select').html('<option id="0">Select business area</div>');
$.ajax({
url: "ajaxBAs.cgi",
dataType: 'json',
success: function(jsonData){
for(var businessIndex in jsonData){
$selectTag.append("<option id='"+jsonData[businessIndex].id+"'>"+jsonData[businessIndex].name+"</option>");
}
},
error: function(){
alert('Ajax error retriving business areas to frontpage.');
}
});
}
我找到了一个解决方案:
OFC IM白痴,因为我忘记了所有关于 “:选择” ..卫生署!所以这是我对我的标签新事件:
$("#filterBA").change(function(){
$('#filterBA option:selected').each(function(){
alert($(this).attr('id'));
});
});
这工作既FF和IE浏览器上的选择,下拉动态创建的选项。
找到解决我的问题:)但谢谢你的帮助。 –
啊 - 你的解决方案如此明显。错过了森林,但为了树木。 – mrtsherman