JQuery attr не работает в Chrome? - PullRequest
       0

JQuery attr не работает в Chrome?

2 голосов
/ 18 февраля 2011
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)

Ответы [ 2 ]

4 голосов
/ 18 февраля 2011

Вам определенно не следует пытаться привязывать обработчик событий подобным образом. Сделайте это ненавязчивым способом:

var select_tag = $('<select>', {
    change:  createDiscipline,
    'class': 'select_menu'
}).appendTo(document.body).fadeIn('slow');

Обратите внимание на мои изменения. Я завернул class в кавычки, потому что это ключевое слово в InternetExplorer и в противном случае может нарушить ваш код. Также я добавил недавно созданный узел <select> к document.body.

Демо : http://jsfiddle.net/vM5Hp/

0 голосов
/ 02 ноября 2011
Some time it’s very frustrated that jQuery .attr not working with Chrome.
    Here I am giving you solution for this.
    Try:
    $(window).load(function () {
    //your script or function
    });
    Rather then
    $(document).ready(function () {
    //your script or function
    });
...