jQuery (1.6.4) қосымшаны қосу үшін append () қосу IE жұмыс істемейді

Мен шынымен append() функциясын IE арқылы пайдалануда қиындыққа тап болдым.

Мен не істегім келеді?

  1. Append anchor tag to the body element
  2. Bind a modalwindow plugin to the anchor tag
  3. Fire the click event on the anchor tag to open the modal window
  4. Remove the anchor tag afterwards

    if($('a#' + id).length == 0){
        $('body').append('<\a>');
    
        $('a#' + id).fancybox({
            'hideOnContentClick': false,
            width: width,
            height: height
        });
    }
    
    $('a#' + id).click();
    
    $('a#' + id).remove();
    

Күтілгендей ол Chrome, FF және Opera-да жақсы жұмыс істейді, бірақ IE-де жоқ.

Мен бұл мәселені шешуге тырыстым:

  1. Mess around with the apostrophs and quotations
  2. Simplify the anchor tag to minimum jQuery object. The h2 tag is, but it won't be shown on the page.

    I have found a workaround to hardcode the anchor tag and modify the attributes, but this is not really what I want. Any ideas are very much appreciated.

    Thank you in advance, Sebastian

0
Id деген не?
қосылды автор epascarello, көзі
Егер DOM жүктелгеннен кейін қосылым қосылса, оны басу арқылы жұмыс істемейді, себебі ол әлі бар емес нәрсеге басу оқиғасын тіркей алмайды. Сондықтан сізге LIVE пайдалану керек және оған басу оқиғасын байланыстырады. Мәселені қайта жасауға болатын сценарийіңіздің/html-нің көшірмесін жасай аласыз.
қосылды автор Marco Johannesen, көзі
@espascarello: идентификатор кәдімгі жол болуы мүмкін.
қосылды автор Sebastian Roland, көзі
@Marco Johannesen: Мен тірі() функциясын тексеріп, қайтып келемін. Рахмет!
қосылды автор Sebastian Roland, көзі

1 жауаптар

Кодыңыздың келесідей көрінетінін күтемін:

var anchor = $('#' + id);
if(anchor.length === 0){
    anchor = $('<\a>'); 
    $('body').append( anchor );
    anchor.fancybox({
        'hideOnContentClick': false,
        width: width,
        height: height
    });
}
anchor.click().remove();

element # id сияқты селекторларды пайдалану тек #id жасағаннан әлдеқайда баяу. Сонымен қатар, IE-ның кейбір нұсқаларында, мәселе бар сияқты.

Сонымен қатар $ ('a #' + id) қымбат және сіз оны бірнеше рет жасайсыз. Уақытты және уақытты қайтадан орындаудың қажеті жоқ. Сіз мұны тек бір рет жасауыңыз керек және оны айнымалылар немесе ілінісу арқылы қайта пайдалану қажет.

1
қосылды
Жоғарыдағы кодты селектордан a түсірілімімен өзгертуге тырыстыңыз ба?
қосылды автор epascarello, көзі
Әрине, сіз дұрыс, бірақ мен жобалау сатысында тұрмын. Алдымен мен оны жұмыс істегім келеді;) Бірақ бәрібір рахмет.
қосылды автор Sebastian Roland, көзі