jQuery replaceWith抛回错误

时间:2010-02-13 19:45:27

标签: jquery

嘿所有,我正在寻找一副新鲜的眼睛来查看这段代码,看看你是否可以告诉我它为什么不能正常工作......我实际上在1.3之前使用过相同的代码。 2,这很好,但由于某些原因1.4.1我遇到了麻烦......我错过了什么?

$(".item").click(function() {       
    var yt_vid = $(this).children('img').attr("id");

    $("#youtube").fadeOut(300, function() {
        $("#youtube").replaceWith('<object id="youtube" type="application/x-shockwave-flash" style="width:488px; height:300px; display:none;" data="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1"><param name="movie" value="http://www.youtube.com/v/' + yt_vid + '&hl=en_US&fs=1&hd=1" /><param wmode="transparent"><\/param><\/object>');

        $('#youtube').fadeIn(1000);
    });
});

使用以下代码在文档加载时添加#youtube:

    var initialVid = $(".item").children('img').attr("id");
$("#youtubePlayer").append('<object id="youtube" type="application/x-shockwave-flash" style="width:488px; height:300px;" data="http://www.youtube.com/v/' + initialVid + '&hl=en_US&fs=1&hd=1"><param name="movie" value="http://www.youtube.com/v/' + initialVid + '&hl=en_US&fs=1&hd=1" /><param wmode="transparent"><\/param><\/object>');

任何时候我点击.item,我在firebug中得到错误'D未定义',在列表中我看到第36行的错误(#youtube.fadeOut行)

谢谢!

2 个答案:

答案 0 :(得分:2)

object标记不允许使用淡入淡出。

将您的对象保留在div内。然后fadeOut div。

尝试此而不是replaceWith

$("#youtube").html('<object type="appli... 

所以你保持你的div与id =“youtube”并且不给object一个id。

答案 1 :(得分:0)

  1. $(“#youtube”)存在吗?
  2. 你可以切换到jquery dev lib(未压缩)并报告错误而不是“D未定义”