jQuery (1.6.4) kullanarak bağlantı eklemek için append () IE çalışmıyor

IE ile append() işlevini kullanırken gerçekten sorun yaşıyorum.

Yapmaya çalıştığım şudur:

  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();
    

Beklendiği gibi Chrome, FF ve Opera'da iyi çalışıyor, ancak IE'de yok.

Bu sorunu çözmeyi denediğim şey:

  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
Kimlik neye benziyor?
katma yazar epascarello, kaynak
DOM yüklendikten sonra bir bağlantı eklendiyse, henüz kullanılmayan bir tıklamaya etkinlik ekleyemediğinden, tıklatmayla işe yaramaz kullanılmaz. Bu yüzden LIVE kullanmalı ve tıklama etkinliğini buna bağlamanız gerekir. Komut dosyanızı/html'inizin daha fazlasını kopyalayabilir misiniz, böylece sorunu yeniden oluşturabilirim.
katma yazar Marco Johannesen, kaynak
@espascarello: Kimlik, bir literal dize olabilir.
katma yazar Sebastian Roland, kaynak
@Marco Johannesen: live() işlevini kontrol edip geri döneceğim. Teşekkürler!
katma yazar Sebastian Roland, kaynak

1 cevap

Kodunuzun şöyle görünmesini beklerim:

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 gibi seçicilerin kullanılması, #id komutundan çok daha yavaştır. Artı, IE'nin belirli sürümlerinde, sorunları var gibi görünüyor.

Ayrıca $ ('a #' + id) pahalıdır ve bunu birçok kez yaparsınız. Tekrar zaman ve zaman yapmanıza gerek yok. Sadece bir kez yapmalı ve değişkenler veya zincirleme ile tekrar kullanmalısınız.

1
katma
Yukarıdaki kodu, a seçimindeki değişiklikten seçerek denediniz mi?
katma yazar epascarello, kaynak
Tabii ki haklısın, ama hala tasarım aşamasındayım. İlk başta sadece çalışmasını istiyorum;) Ama yine de teşekkürler.
katma yazar Sebastian Roland, kaynak