jquery:实时查询不在ie6,ie7中工作的选择器

时间:2011-05-19 05:53:51

标签: jquery

我有这样的代码片段......

$('#ShowRatings a.show').click(function() {
    $('#contents').html('#some_div');
    createGraph($('#contents .ratings-contents'));
});

我的问题是我正在使用的点击触发器('#ShowRatings a.show')在页面加载时没有改变,但是在函数createGraph()中使用的选择器正在改变 - 我正在操纵jquery dom 。因此,在IE6 / IE7中,它显示了类似object not found的错误。在其他浏览器中,此代码段工作正常。

如果它本来是一个使用jquery操作的事件触发器,我会有live事件,但是如何处理正在改变的选择器呢?

1 个答案:

答案 0 :(得分:1)

您是否在$(document).ready(function(){ your code; });中拥有此代码?

如果您使用live则应该没问题。

您想要选择的Div不会改变(如果您不通过javascript或jquery操作html代码)。在我看来,你的代码在html代码之前,所以它在DOM加载之前被触发。在FF中它可以工作,因为它是如此之快以至于在定义click之前创建了DOM。在click函数内部,它始终有效,因为每次调用click时,jQuery都会在DOM元素中进行新的搜索。所以请使用我提到的ready

修改

执行:

$('#ShowRatings a.show').live('click',function() {
    $('#contents').html('#some_div');
    createGraph($('#contents .ratings-contents'));
});