0

編集*

私たちのウェブサイトのページの 1 つに、吹き出しで冗談を言っている海賊がいます。バブルをクリックすると、リスト内のジョークがランダムに別のジョークに変わります。何らかの理由で、これは 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/

4

3 に答える 3

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があなたのジョークリストの親であることだと思います

于 2013-01-30T12:42:06.517 に答える
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;
});

これで問題が解決するかどうかを確認してください。

于 2013-01-30T12:24:48.300 に答える
0

関数の割り当てにセミコロンが欠けていると思います。これを試して:

// Encapsulate random value assignment within a function
var setRandomValue = function(element) {
   [...]
}; // add semicolon here
于 2013-01-30T12:11:30.957 に答える