묻고답하기
위젯에서 페이지별로 버튼 다르게 하려면
2013.02.02 13:21
위젯에서 목록이 나오고, 그게 페이지로 넘어간다면, 페이지별로 prev/next 버튼이 나오는게 다르게 보이게 하고 싶습니다.
foreach 문으로
{@$_idx=0}
{@$_idx++}
이게 돌아가구요..
맨 아래 prev/next 버튼 나오게 하는거를
첫페이지에는 next만, 다음페이지는 pre/next 같이, 마지막 페이지에는 prev만
나오게 하고 싶습니다.
아래를 어떻게 고치면 될것같은데 저로썬 쉽지가 않네요..
<ul class="widgetNavigator">
<li><button type="button" class="next" title="{$lang->cmd_next}" onclick="content_widget_next(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_next}</span></button></li>
<li><button type="button" class="prev" title="{$lang->cmd_prev}" onclick="content_widget_prev(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_prev}</span></button></li>
원래는 이건데요...
<!--@if($page_count=1)--> // 첫페이지에는 무조건 next 만 보이게...
<li><button type="button" class="next" title="{$lang->cmd_next}" onclick="content_widget_next(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_next}</span></button></li>
<!--@elseif($widget_info->page_count>$page_count)--> // 위젯에서 설정한 페이지보다 현재 페이지가 작을경우 prev/next 둘다 보이게...
<li><button type="button" class="next"
title="{$lang->cmd_next}"
onclick="content_widget_next(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_next}</span></button></li>
<li><button
type="button" class="prev" title="{$lang->cmd_prev}"
onclick="content_widget_prev(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_prev}</span></button></li>
<!--@else--> // 아닐경우(끝페이지) 는 prev 만 보이게...
<li><button type="button" class="prev" title="{$lang->cmd_prev}" onclick="content_widget_prev(jQuery(this).parents('ul.widgetNavigator').prev('ul.widgetZineA'),{$widget_info->list_count})"><span>{$lang->cmd_prev}</span></button></li>
<!--@end-->
이렇게 했는데..., 그냥 next 만 쭉 보입니다.. ㅎㅎ;
뭐가 잘 못 되었나요?
댓글 3
-
sejin7940
2013.02.02 13:40
-
_writer
2013.02.02 13:44
해당 값 출력은 어떻게 하는건가요? 그리고.. 컨텐츠확장위젯입니다.. -
_writer
2013.02.02 15:13
버튼과 관계된 js 파일을 보니 이렇게 나와있습니다. 이쪽은 전혀 몰라서 그러는데... 이걸 보고 어떤 변수를 건드려야 할지 알수 있을까요?
function content_widget_next(obj,list_per_page){
var page = 1;
if(obj.is('table')) {
var list = jQuery('>tbody>tr',obj);
} else if(obj.is('ul')) {
var list = jQuery('>li',obj);
}
var total_page = parseInt((list.size()-1) / list_per_page,10)+1;
list.each(function(i){
if(jQuery(this).css('display') !='none'){
page = parseInt((i+1)/list_per_page,10)+1;
return false;
}
});
if(total_page <= page) return;
list.each(function(i){
if( (page* list_per_page) <= i && ((page+1) * list_per_page) > i){
jQuery(this).show();
}else{
jQuery(this).hide();
}
});
}
function content_widget_prev(obj,list_per_page){
var page = 1;
if(obj.is('table')){
var list = jQuery('>tbody>tr',obj);
}else if(obj.is('ul')){
var list = jQuery('>li',obj);
}
var total_page = parseInt((list.size()-1) / list_per_page,10)+1;
list.each(function(i){
if(jQuery(this).css('display') !='none'){
page = parseInt((i+1)/list_per_page,10)+1;
return false;
}
});
if(page <= 1) return;
list.each(function(i){
if( ((page-2)* list_per_page)<= i && ((page-1) * list_per_page) > i){
jQuery(this).show();
}else{
jQuery(this).hide();
}
});
}
function content_widget_tab_show(tab,list,i,ttype,url){
tab.parents('ul.widgetTab').children('li.active').removeClass('active');
tab.parent('li').addClass('active');
jQuery('>dd',list).each(function(j){
if(j==i) {
if (ttype == 1 && jQuery(this).hasClass('open')) {
location.href = url; return;
}
jQuery(this).addClass('open');
}
else jQuery(this).removeClass('open');
});
} -
푸시아
2013.02.02 17:01
<!--@if($page_count=1)--> // 첫페이지에는 무조건 next 만 보이게...
부분이 이상한데요..
<!--@if($page_count==1)--> // 첫페이지에는 무조건 next 만 보이게...
이렇게 해야 하지 않을까요?
-
_writer
2013.02.02 19:01
감사합니다. -
_writer
2013.02.02 19:02
그런데, 위의 문제는 html에서 if 문으로 처리할 수 없는것같아보이네요. firebug에서 보니, 위젯에서 페이지 넘어가는것은, 일단 모든 <li> 요소들을 다 불러들어와놓고, $_idx 값에 따라서 style=display:none; 으로 해버리네요... -
_writer
2013.02.02 19:03
그 후, jquery 에서 버튼 누르면 display:none을 바꿔주면서 페이지를 바꾸는것처럼 보이게 하는 것 같은데... 뭐를 어떻게 고쳐야 할지 잘 감이 안옵니다.
어떤 위젯인지 알수가 없지만.. 예상되는걸 알려드리면..
$page_count 라는 변수가 틀리셨을거예요. 해당 값을 출력시키면서 테스트해보세요