Niedawno naprawiłem probiałem z przesuwnym polem dzięki, więc chciałem też zapytać ten problem.

Na stronie: http://www.trulyscience.com/test/index.html Mam małe pudełko z pytaniami. Zjeżdżamy po otwarciu po naciśnięciu i zjeżdżalnie zamknięte, gdy ponownie naciśnij. Teraz moim problemem jest to, że nie działa to IE.

Oto kod:

function loadQuestion(){

var lol;
lol = 1;

jQuery('#question').click(function(){
    if (lol==0){
      jQuery('#question').animate({height:'300'});
      lol = 1;
    }else{
      jQuery('#question').animate({height:'30'});
      lol = 0;                     
    }
});

jQuery('#question').trigger('click'); // Simulating click
}

jQuery(document).ready(function(){
loadQuestion();
});
0
Coolcrab 18 sierpień 2012, 19:12

2 odpowiedzi

Najlepsza odpowiedź

Myślę, że masz problem z obciążeniem dzwoniącym () przed pytaniem DIV jest dostępny dla jQuery, więc zdarzenie Click nigdy nie zostanie dodane.

Dodałem punkt przerwania i zegarek w funkcji gotowości, która wydawała się przynajmniej wskazać to przynajmniej.

jQuery(document).ready(function(){
    // does this print 0 in IE? 
    console.log(jQuery('#question').length);

    loadQuestion();
});​

Aby zweryfikować, możesz przenieść skrypt na dole strony i sprawdzić, czy rozwiązuje problem. Jeśli tak, nadal zbadałbym, dlaczego pytanie DIV nie jest dostępne, gdy regularne wyzwalacze dokumentów w IE.

1
Strille 18 sierpień 2012, 16:11
function loadQuestion(){

var lol;
lol = 1;
var invalidElems = {
    INPUT : true,
    TEXTAREA : true
};
jQuery('#question').click(function(e){
    if(e.target.tagName in invalidElems === false){
        if (lol==0){
          jQuery('#question').animate({height:'300'});
          lol = 1;
        }else{
          jQuery('#question').animate({height:'30'});
          lol = 0;                     
        }
    }
});

jQuery('#question').trigger('click'); // Simulating click
}

jQuery(document).ready(function(){
loadQuestion();
});​

Próbny

0
Some Guy 18 sierpień 2012, 15:30