JQuery получить сгенерированные элементы атрибуты FF против IE проблема - PullRequest
1 голос
/ 22 сентября 2011

У меня есть событие click на моем теге select (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, когда я удерживаю мышь и выбираю один из вариантов.Я не понимаю, так как я использую тот же подход, когда мне нужно выбрать div, используемый в пользовательском списке выбора, который я создал (в той же системе), но когда событие click находится в теге, оно не будетработа.

Кто-нибудь знает, что может быть не так?

кстати.вот моя функция для генерации опций:

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 идиот, так как я забылвсе о ": выбрано" .. DOH!Итак, вот мое новое событие на моем теге:

$("#filterBA").change(function(){
    $('#filterBA option:selected').each(function(){
        alert($(this).attr('id'));
    });
});

Это работает как с FF, так и с IE для динамически создаваемых опций в выпадающем меню выбора.

1 Ответ

1 голос
/ 22 сентября 2011

С QuirksMode .

event.target - W3C / Netscape говорит: цель.Нет, говорит Microsoft, srcElement.

Не уверен, как обойти это.Прочитайте статью QuirksMode, поскольку она предоставляет функцию, которая может выполнять, а может и не выполнять то, что вы хотите, а также указывает несколько других атрибутов, которые, надеюсь, будут работать на вас.Хотя я надеюсь, что, возможно, у jQuery была абстрагированная версия, чтобы вам не приходилось беспокоиться о взломах IE.

...