我是一名初学者php开发人员,并且在Javascript中的流利程度令人震惊。我正在研究的一个ezpublish网站将此滑块作为默认代码段,但它显示三个项目。如何编辑它以仅显示1个项目?代码是:
(function(){
YUI(YUI3_config).use('node','event','io-ez',function(Y,result){
Y.on('domready',function(e){
var offset = 0;
var limit = 1;
var total = {$block.valid_nodes|count()};
var handleRequest = function(e) {
var className = e.target.get('className');
if ( className == 'carousel-next-button' ) {
offset += 1;
if ( offset > total )
offset = 0;
}
if ( className == 'carousel-prev-button' ) {
var diff = total - offset;
if( offset == 0 )
offset = 0;
else
offset -= 1;
}
var colContent = Y.Node.all('#block-3 .col-content');
colContent.each(function(n, e) {
n.addClass('loading');
var height = n.get('region').bottom - n.get('region').top;
n.setStyle('height', height + 'px');
n.set('innerHTML', '');
});
var data = 'http_accept=json&offset=' + offset;
data += '&limit=' + limit;
data += '&block_id={$block.id}';
Y.io.ez( 'ezflow::getvaliditems', { on: { success: _callBack
}, method: 'POST', data: data } );
};
var _callBack = function(id, o) {
if ( o.responseJSON !== undefined ) {
var response = o.responseJSON;
var colContent = Y.Node.all('#block-{$block.id} .col-content');
for(var i = 0; i < colContent.size(); i++) {
var colNode = colContent.item(i);
if ( response.content[i] !== undefined )
colNode.set('innerHTML', response.content[i] );
}
}
};
var prevButton = Y.one('#block-{$block.id} input.carousel-prev-button');
prevButton.on('click', handleRequest);
var nextButton = Y.one('#block-{$block.id} input.carousel-next-button');
nextButton.on('click', handleRequest);
});
});
})();
</script>
这样做的手很棒x
答案 0 :(得分:0)
在我看来,在用户点击prevButton
或nextButton
后,此代码会加载每个项目。因此,强制只显示单个项目的最简单方法可能是隐藏这些按钮。
如果没有标记,很难说最佳解决方案是什么,但我会尝试找出是什么让你正在使用的特定标记进入旋转木马(我猜一个包含&#34; carousel&#34;)的类,并将其删除,以便它只是一个没有轮播功能的项目。
对于它的价值,这个问题不是eZ Publish或PHP特有的,所以我考虑删除那些标签。