0

我的 HTML 中有一个带有多个引号的列表。我还有一个名为“speech”的 div,它的样式看起来像一个气泡。

当程序运行时,第一个引号显示在气泡中,当它被单击时,它会跳过引号列表。

我的问题是,在 IE8 中,气泡中没有显示任何内容,我无法弄清楚原因。有人可以告诉我我是否做错了什么,或者建议我如何做得更好。

这是清单...

<ul class="facts">
        <li>
            <span>What goes ho-ho whoosh, ho-ho whoosh?<br/>Santa caught in a revolving door.</span>
        </li>
        <li>
            <span>Whats white and goes up? <br/> A confused snowflake.</span>
        </li>
        <li>
            <span>Which Christmas carols do parents like best? <br/> Silent Night.</span>
        </li>
        <li>
            <span>How did the snowman get to school?<br/>On his icicle.</span>
        </li>
        <li>
            <span>What do you call a three-legged donkey?<br/> A wonkey.</span>
        </li>
</ul>

这是脚本...

jQuery.fn.extend({
rnditem : function(l) {
    var a = [],
        current = jQuery(this).html().trim(),
        index,
        next;

   Array.prototype.forEach.call(l, function(item) {
        a.push(jQuery(item).html()
               jQuery.trim();
   });

   index = a.indexOf(current) + 1;
   if (index < 0 ||  index >= l.length) {
       index = 0;
   }

   next = (l.eq(index).html());

   jQuery(this).html(next);

  return this;
   }
});

    jQuery(document).ready(function () {


var list = jQuery(".facts").find("li");

jQuery(document.body).on('click','.speech', function () {

jQuery(this).rnditem(list);
});

jQuery(".speech").trigger("click");


});

小提琴:http: //jsfiddle.net/S79qp/425/

4

1 回答 1

1

看着小提琴,我看到的代码与上面发布的不同。

下面的行

current = jQuery(this).html().trim(),

a.push(jQuery(item).html().trim());

会抛出一个类似的错误

对象不支持属性或方法“修剪”

因为IE8没有内置trim,所以使用jQuery.trim()

于 2013-04-23T15:57:18.533 回答