選択タグ (filterBA) にクリック イベントがあり、オプションが動的に生成されます。
$("#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 では true vi を返します。マウスを押したままにして、オプションの 1 つを選択します。(同じシステムで)作成したカスタム選択リストで使用されるdivを選択する必要がある場合は同じアプローチを使用するため、わかりませんが、クリックイベントがタグにある場合はそうしません仕事。
誰が何が間違っているのか知っていますか?
ところで。オプションを生成する関数は次のとおりです。
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.');
}
});
}
私は解決策を見つけました:
":selected" のことをすっかり忘れていたので、私はばかです.. DOH! これが私のタグの新しいイベントです。
$("#filterBA").change(function(){
$('#filterBA option:selected').each(function(){
alert($(this).attr('id'));
});
});
これは、選択ドロップダウンで動的に作成されたオプションで、FF と IE の両方で機能します。