Cas*_*ght 8 jquery cycle selection pager
我正在使用Cycle插件用于新闻旋转器.这意味着我使用Div来填充幻灯片而不是图像.
我的最终目标是制作一个寻呼机而不是通常的1,2,3,4等 - 而是返回幻灯片中的第一个H3标签.
我知道这可能是一个次要的选择问题,但这是我到目前为止所使用的:
$('#scroll_wrap').cycle({
fx: 'fade',
pager: '#pager',
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#">' + slide.children("h3").textContent + '</a></li>';
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过这样的事情:
$('#scroll_wrap').cycle({
fx: 'fade',
pager: '#pager',
pagerAnchorBuilder: function(idx, slide) {
var h3 = $('div',slide).children('h3');
return '<li><a href="#">' + slide.h3 + '</a></li>';
}
Run Code Online (Sandbox Code Playgroud)
你可能会说,我仍然是一个初出茅庐的人.:/
任何人都可以帮我解决问题吗?
3n.*_*3n. 14
将pagerAnchorBuilder函数中的一行更改为:
return '<li><a href="#">' + jQuery(slide).children("h3").eq(0).text() + '</a></li>';
Run Code Online (Sandbox Code Playgroud)
需要改变三件事:
slide => jQuery(slide)
因为除非你告诉它,否则jQuery不会使用其辅助函数扩展元素.这是jQuery不能扩展本机原型(如Element)的不幸副作用.这意味着你必须使用jQuery(x)包装代码中的每一件事.
children("h3")=> children("h3").eq(0)
因为选择器返回匹配的对象数组,所以在执行选择器之后应该抓住第一个,否则链中的以下方法调用将作用于元素集.Jquery应该提供像.firstChild("h3")这样的东西.
textContent => .text()
textContent是一个mozilla的东西,并不适用于某些浏览器.在这里使用jQuery的.text()方法.在这种情况下,jQuery没有做错任何事.