JQuery代码无法在IE9或更低版本中运行

时间:2013-01-30 12:04:27

标签: javascript jquery

编辑*

在我们网站的其中一个页面中,有一个带有讲话泡泡的海盗讲述了笑话。单击气泡时,笑话会在列表中随机更改为另一个。出于某种原因,这在IE9或更低版本中不起作用。谁能告诉我为什么?

我已检查控制台并出现此错误

"CE2.w.external.InPrivateFilteringEnabled is not a function" 

这是脚本:

$(document).ready(function () {
    var list = $(".joke-list li").toArray();
    var elemlength = list.length;

    // Encapsulate random value assignment within a function
    var setRandomValue = function(element) {
        var randomnum = Math.floor(Math.random() * elemlength);
        var randomitem = list[randomnum];
        $(element).html($(randomitem).text());
    }

    // Bind click button
    $('.speech').click(function () {
        setRandomValue(this);
    });

    // Set random value for the first time
    setRandomValue($('.speech'));
    $('.speech').css("width: 1000px;");
});

这是一个小提琴,我把它拼凑在一起以显示错误:http://jsfiddle.net/uRd6N/116/

3 个答案:

答案 0 :(得分:1)

尝试这个,更简单&清洁代码

$(document).ready(function () {

var list = $(".joke-list").find("li").map(function(){return $(this).text();});

 // Bind click 
$(document.body).on('click','.speech', function () {
  var rndnum=Math.floor(Math.random() * list.length);
  console.log(rndnum); 
   $(this).html(list[rndnum]);
});
//first rand joke 
$(".speech").trigger("click");

});

看到你的HTML后我猜你的问题是你的演讲div是你的笑话列表的父母

答案 1 :(得分:0)

我想这是函数分配中缺少的分号。试试这个:

// Encapsulate random value assignment within a function
var setRandomValue = function(element) {
   [...]
}; // add semicolon here

答案 2 :(得分:0)

您在下面的功能中遗漏了;

试试这个:

$(document).ready(function () {
var list = $(".joke-list li").toArray();
var elemlength = list.length;

// Encapsulate random value assignment within a function
var setRandomValue = function(element) {
    var randomnum = Math.floor(Math.random() * elemlength);
    var randomitem = list[randomnum];
    element.html($(randomitem).text());
};// <----';' is missing here ie will create issues here

// Bind click button
$('.speech').click(function () {
    setRandomValue($(this));
});

    // Set random value for the first time
    setRandomValue($('.speech'));
    $('.speech').css("width","1000px"); //<---apply css this way;
});

看看这是否能解决您的问题。