0

私は最近、あなたのおかげでスライディングフィールドで抱えていた問題を修正したので、この問題についても質問したいと思いました。

サイト:http ://www.trulyscience.com/test/index.html質問のある小さなボックスがあります。押すとスライドして開き、もう一度押すとスライドが閉じます。今私の問題は、これがIEでは機能しないことです。

コードは次のとおりです。

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

2 に答える 2

1

質問divがjQueryで利用可能になる前にloadQuestion()を呼び出すことに問題があると思うので、クリックイベントが追加されることはありません。

少なくともこれを示しているように見えるready関数にブレークポイントとウォッチを追加しました。

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

    loadQuestion();
});​

スクリプトをページの下部に移動して、問題が解決するかどうかを確認するだけです。もしそうなら、IEでドキュメントレディがトリガーされたときに質問divが利用できない理由を調査します。

于 2012-08-18T16:11:11.863 に答える
0
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();
});​

デモ

于 2012-08-18T15:30:16.143 に答える