我有这样的代码片段......
$('#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
事件,但是如何处理正在改变的选择器呢?
答案 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'));
});