我的index.php底部包含以下行:
<script type="text/javascript" language="javascript" src="class/jquery-1.4.3.min.js"> </script>
<script type="text/javascript" language="javascript" src="class/jquery.nivo.slider.pack.js"></script>
<script type='text/javascript' language='javascript'>
$(window).load(function() {
$('#slider').nivoSlider();
});
</script>
问题在于$(window).load
...
index.php的主体通过ajax调用更新onload,它在匹配时提供div#slider。这使nivoSlider()
没有执行。你有什么把戏让这件事有用的伎俩吗?我更喜欢非jquery方式,但在一天结束时,任何事情都有帮助。
答案 0 :(得分:5)
在AJAX加载的回调中添加调用。
$('.something').load( 'http://www.example.com/foo', function() {
$(this).find('#slider').nivoSlider();
});
使用代码的示例(用于正文):
$(function() { // run on document ready, not window load
$('#content').load( 'page.php?c=2&limit=5', function() {
$(this).find('#slider').nivoSlider();
});
});
链接:
<!-- updates links like so -->
<a class='nav' href='page.php?category=art&limit=5&c=1'>art</a>
// in the same document ready function
$('a.nav').click( function() {
var $link = $(this);
$('#content').load( $link.attr('href'), function() {
$(this).find('#slider').nivoSlider();
$link.addClass('selected'); // instead of setting bg directly to #828282;
});
return false; // to prevent normal link behavior
});
答案 1 :(得分:0)
你不想使用$(文件)而不是$(窗口)吗?
$(window).load(function() { $('#slider').nivoSlider(); });
或简写
$(function() { $('#slider').nivoSlider(); });