질문/조언질답게시판
Extra Form
CMS 기타
cafe24로 쇼핑몰 만드는 과정에서 어려움이 있어 질문 남깁니다.ㅜㅜ
 
밑의 내용은 관련된 스크립트를 옮겨 놓은 것입니다.
카테고리를 생성을 하면 특정 위치가 생성되어 링크가  지정되어서 클릭하면 생성된 위치로 이동을 합니다.
 
1단 카테고리를 생성하고 하위 카테고리를 추가하게 되면 다른 추가 스크립트를 통해 태그들이 입력되도록 되어 있습니다.
 
여기서 문제는 링크 클릭시 기존 위치로 이동하지 않고 다른 곳으로 이동하도록 설정하고 싶어서 스크립트를 추가하는 것인데
밑에 보시면 첫번째 스크립트 하단에 
 
    $('#cate54 > a').attr("href","https://a.com");
    $('#cate55 > a').attr("href","https://b.com"); 
    $('#cate56 > a').attr("href","https://c.com");
    $('#cate57 > a').attr("href","https://d.com"); 
 
이렇게 입력하였습니다.
 
 
#cate54 는 밑의 html 파일의 <li id=""> 의 값입니다. 자동으로 지정되는 값인데 
 
54는 1단 카테고리이고 나머지 55~57은 하위 카테고리입니다.
 
그런데 54 는 a.com 으로 적용이 되어서 이동이 되었습니다.
하지만 55~57은 적용이 안되어서 문제입니다.
 
하위 카테고리는 기존 html 파일로 입력이 되어 있지 않고 카테고리 생성시 스크립트를 통해 태그들이 입력되어서 적용되어서 문제가 생기는거 같습니다.
제가 스크립트는 초보라 볼줄은 알지만 어떻게 적용하는지 잘 몰라서 두번째 스크립트 파일에 어떻게 수정을 다 해봐도 적용이 되지 않아서 이렇게 글을 남겨 봅니다.ㅜㅜ
 
두번째 파일 내용중에 
aHtml.push('<li class="noChild" id="cate'+this.cate_no+'">');
이 부분이 하단 카테고리 id값을 지정하는 곳인데 너무 답답해서 
cate'+this.cate_no+' 값을 cate55로 입력하고 
var sHref = '/product/list_thumb.html'+this.param; 값을 a.com으로 입력 했더니 당연하지만 55~57까지 전부다 이 값으로 적용이 되더라구요.
 
전문가님들~~ 밑의 내용을 보시고 어디 부분을 수정해야할지좀 알려주시면 감사하겠습니다. 
전문가님들의 답변을 기다리겠습니다. 항상 감사합니다.~~
 

.html 안의 내용은 이렇습니다. 

 
<li id="cate{$cate_no}">
<a href="#none" class="cate" cate="{$param}">{$name}</a>
<a href="{$link_product_list}" class="view">상품보기</a>
<button type="button" class="icoBookmark" id="icoBookmark">즐겨찾기 추가</button>
        </li>
 
 
첫번째 스크립트 파일 내용입니다.
 
// 카테고리 클릭
$('.sp-panel-design-1-category a.cate').live('click', function() { 
 
var _spPanelCate = $(this);
 
setTimeout(function(){
if( _spPanelCate.closest('li').hasClass('selected') ){
_spPanelCate.closest('li').find(' > ul').addClass('ready');
}else{
_spPanelCate.closest('li').find(' > ul').removeClass('ready');
}
}, 100);
 
});
 
});
 
 
두번째 스크립트 파일 내용은 이렇습니다.
 
 
show: function(overNode, iCateNo) {
             var oParentNode = overNode;
            var aHtml = [];
            var sMyCateList = localStorage.getItem("myCateList");
            if (methods.aSubCategory[iCateNo] != undefined) {
                aHtml.push('<ul class="slideSubMenu">');
                $(methods.aSubCategory[iCateNo]).each(function() {
                    var sNextParentNo = this.cate_no;
                    var sCateSelected = (checkInArray(sMyCateList, this.cate_no) == true) ? ' selected' : '';
                    if (methods.aSubCategory[sNextParentNo] == undefined) {
                        aHtml.push('<li class="noChild" id="cate'+this.cate_no+'">');
                        var sHref = '/product/list_thumb.html'+this.param;
                    } else {
                        aHtml.push('<li id="cate'+this.cate_no+'">');
                        var sHref = '#none';
                    }
                    aHtml.push('<a href="'+sHref+'" class="cate" cate="'+this.param+'" onclick="subMenuEvent(this);">'+this.name+'</a>');
                    if (methods.aSubCategory[sNextParentNo] != undefined)  aHtml.push('<a href="/product/list_thumb.html'+this.param+'" class="view">상품보기</a>');
                    aHtml.push('<button type="button" class="icoBookmark'+sCateSelected+'" id="icoBookmark">즐겨찾기 추가</button>');
 
                    if (methods.aSubCategory[sNextParentNo] != undefined) {
                        aHtml.push('<ul>');
                        $(methods.aSubCategory[sNextParentNo]).each(function() {
                            var sNextParentNo2 = this.cate_no;
                            var sCateSelected = (checkInArray(sMyCateList, this.cate_no) == true) ? ' selected' : '';
                            if (methods.aSubCategory[sNextParentNo2] == undefined) {
                                aHtml.push('<li class="noChild" id="cate'+this.cate_no+'">');
                                var sHref = '/product/list_thumb.html'+this.param;
                            } else {
                                aHtml.push('<li id="cate'+this.cate_no+'">');
                                var sHref = '#none';
                            }
                            aHtml.push('<a href="'+sHref+'" class="cate" cate="'+this.param+'" onclick="subMenuEvent(this);">'+this.name+'</a>');
                            if (methods.aSubCategory[sNextParentNo] != undefined)  aHtml.push('<a href="/product/list_thumb.html'+this.param+'" class="view">상품보기</a>');
                            aHtml.push('<button type="button" class="icoBookmark'+sCateSelected+'" id="icoBookmark">즐겨찾기 추가</button>');
 
                            if (methods.aSubCategory[sNextParentNo2] != undefined) {
                                aHtml.push('<ul>');
 
                                $(methods.aSubCategory[sNextParentNo2]).each(function() {
                                    aHtml.push('<li class="noChild" id="cate'+this.cate_no+'">');
                                    var sCateSelected = (checkInArray(sMyCateList, this.cate_no) == true) ? ' selected' : '';
                                    aHtml.push('<a href="/product/list_thumb.html'+this.param+'" class="cate" cate="'+this.param+'" onclick="subMenuEvent(this);">'+this.name+'</a>');
                                    aHtml.push('<button type="button" class="icoBookmark'+sCateSelected+'" id="icoBookmark">즐겨찾기 추가</button>');
                                    aHtml.push('</li>');
                                });
                                aHtml.push('</ul>');
                            }
                            aHtml.push('</li>');
                        });
                        aHtml.push('</ul>');
                    }
                    aHtml.push('</li>');
                });
                aHtml.push('</ul>');
            }
            $(oParentNode).append(aHtml.join(''));
        },
        close: function() {
            $('.slideSubMenu').remove();
        },
 
 
  • profile
    두번째 스크립트의 show 함수 가장 마지막에 넣어 보셨나요?
  • ?
    답글 정말 감사합니다...ㅜ.ㅜ
    일단 마지막에 넣어 보았는데 적용이 되지 않았습니다.혹시나해서
    $(function(){ $('#cate55 > a').attr("href","https://b.com"); });
    이렇게 해도 안되네요..ㅜㅜ
  • ? profile
    $(oParentNode).append(aHtml.join(''));

    다음 라인에 넣으셔도 안되시는 건가요?
  • ?
    네.. 그 문구 바로 아래 넣어도 안돼서 그 밑에 }, 다음에 넣어도 보았는데 안됩니다..
  • ?
    혹시 undefined 값으로 자동으로 추출되는 값때문에 안되는 것인가 싶어서 cate55 값이 나오면 코드를 새로 입력 할 수 있게 하는 방법이 있나도 생각해 보고 있는데 어떻게 작성해야 할지 잘 몰라서 네이버 검색해 가면서 한참 바라보고만 있네요..;;
  • ?
    어떻게 어떻게 하다보니 해결되었습니다. 감사합니다.~~