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() 有问题,因此永远不会添加 click 事件。

我在 ready 函数中添加了一个断点和一个 watch,这似乎至少表明了这一点。

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 回答