JS:扩展div,IE问题

时间:2012-08-18 15:12:33

标签: javascript internet-explorer

我最近解决了我对滑动场的一个问题,谢谢你,所以我也想问这个问题。

在网站上: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();
});

2 个答案:

答案 0 :(得分:1)

我认为在问题div可用于jQuery之前调用loadQuestion()会有问题,因此从不添加click事件。

我在准备好的功能中添加了断点和手表,这似乎至少表明了这一点。

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

    loadQuestion();
});​

只是为了验证您是否可以将脚本移动到页面底部,看看是否能解决问题。如果确实如此,我仍然会调查为什么在IE中文档就绪触发时问题div不可用。

答案 1 :(得分: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();
});​

Demo