我正在使用新闻自动收录器页面中的新闻栏目,我想使用带有这些新闻的prettyphoto插件,但是当<时,任何jquery功能都不起作用。 li>物品改变了他们的位置。
例如,当第一个项目变为最后一个时,jquery函数都不起作用
以下是代码
$(document).ready(function(){
var first = 0;
var speed = 1000;
var pause = 3500;
function removeFirst(){
first = $('ul#listticker li:first').html();
$('ul#listticker li:first')
.animate({opacity: 0}, speed)
.fadeOut('slow', function() {$(this).remove();});
addLast(first);
}
function addLast(first){
last = '<li style="display:none">'+first+'</li>';
$('ul#listticker').append(last)
$('ul#listticker li:last')
.animate({opacity: 1}, speed)
.fadeIn('slow')
}
interval = setInterval(removeFirst, pause);
//Codes above are for the news ticker
$(".news").click(function(e){
e.preventDefault(); //I assign news class to links if there is no image for the news on db but it doesn't even work
});
$("#newsdiv a[rel^='gallery']").prettyPhoto({
theme:'light_rounded'
});
});
php函数的HTML结果
<ul id="listticker">
<li>
<img src="http://example.com/m.../k_haber.png"><a href="#" class="news">12.05.2011</a><span class="news-text">Some Title</span>
</li>
<li>
<img src="http://example.com/../some.png"><a href="http://example.com/../news/p_some.jpg" class="news-title" rel="gallery[dd0]"> 12.05.2011</a><span class="news-text">Some Other Title</span>
</li>
</ul>
知道可能导致此问题的原因或解决方法吗?
修改:
我认为问题出现是因为jquery html选择器。
答案 0 :(得分:0)
在dom ready事件之外获取变量和函数声明。 http://jsfiddle.net/jfahv/
答案 1 :(得分:0)
jQuery的“:first”选择器返回第一个匹配的元素,而不是第一个子元素。尝试使用:第一个孩子。
答案 2 :(得分:0)
我意识到在将要使用的函数中声明了Jquery函数,最后我找到了解决方案。
以下是代码
$(document).ready(function(){
var first = 0;
var speed = 1000;
var pause = 3500;
function removeFirst(){
first = $('ul#listticker li:first').html();
$('ul#listticker li:first')
.animate({opacity: 0}, speed)
.fadeOut('slow', function() {$(this).remove();});
addLast(first);
}
function addLast(first){
last = '<li style="display:none">'+first+'</li>';
$('ul#listticker').append(last)
$('ul#listticker li:last')
.animate({opacity: 1}, speed)
.fadeIn('slow',function(){
$("a[rel^='gallery']").click(function() {
$.prettyPhoto.open($(this).attr("href"),"","");
return false;
});
});
$(".news").click(function(e){
e.preventDefault();
});
}
interval = setInterval(removeFirst, pause);
$("#newsdiv a[rel^='gallery']").prettyPhoto({
theme:'light_rounded'
});
});