루미집사님의 루미팝업 이용 문의

루미집사님의 루미팝업 이용 문의

QA

루미집사님의 루미팝업 이용 문의

본문

루미집사님의 팝업을 일반 게시판에 사용하려고 하는데요.
아래와 같이 하면 첫번째만 되네요.
리스트 각 아이디별로 팝업을 띄우려면
getElementById("popup_01") 과
url : $(this).attr('data-id') 를
어떻게 고쳐야하는지요?

 

url : $(this).attr('data-id')
이건 이렇게 넣으니 되는것 같은데 맞는건지요?

 


<script>
$(function () {
    document.getElementById("popup_01").onclick = function() {
        rumiPopup.popup({
            width : 800, // 팝업창 가로크기
            height : 600, // 팝업창 세로크기
            fadeIn : true, // 팝업시 이펙트종류
            fadeinTime : 500, // 이펙트 지연시간
            url : $(this).attr('data-id'), // 불러올문서
            title : "기본팝업창", // 팝업창 제목
            buttonView : true,
            reloadBtn : true,
            button : {
                "전송" : function(){
                    $("#rumiIframe").contents().find("#btn_submit").trigger("click");
                },
                "닫기" : function(){
                    rumiPopup.close(); // 팝업창 닫기
                },
            },
            open : function(){
                $("div.rumiButton button:contains('닫기')").css({"background":"#555"});
                $("div.rumiButton button:contains('삭제')").css({"background":"#555"}).hide();
            },
            close : function() {
            }
        });
    };
});
</script>
 
<?php for ($i=0; $i<count($list); $i++) { ?>
<div id="popup_01" data-id="<?php echo $board_skin_url."/popup.php?bo_table=".$bo_table."&wr_id=".$list[$i]['wr_id']; ?>">
<?php echo $list[$i]['wr_subject']; ?>
</div>
<?php } ?>

이 질문에 댓글 쓰기 :

답변 5

얼핏 봤을 때는 

팝업 대상을 아이디 값으로 접근해서 가져오는 것 같은데요

아이디는 윈도우당 하나씩만 같은 이름으로 지정되어야 하는 걸로 알고 있습니다 ( 주민 등록 번호와 같이 )

그러니 

선택된 대상으로 가져올 때는

직접 찍은 선택된 곳이나 혹은 클래스명을 이용해서 원하는 것을 지명해서 찾는 ( 이름과 같은 == 동명이인들 많아도 쓸수 있듯이 ) 방식으로 변경해야할 것 같습니다

 

자바스크립트 소스부의 아래 부분

   document.getElementById("popup_01").onclick = function() {

php혼합 소스부의 아래 부분

<div id="popup_01" data-id="

위의 두부준을 고쳐야 되지 않을까 싶습니다

 

 

자바스크립트 소스의 아이디를 클릭해서 실행시키는 이벤트 동작부를  같은 명의 클래스를 가진 모든

것을 클릭해도 될수 있도록 확장

 

$(".popupLayer").on("click", function(e){

// 나머지 소스 

});

위의 클릭 이벤트가 되지 않는다면 클래스 명으로 온클릭하는 소스를 찾아서 변경해 보세요

 

PHP 혼합부 소스에 클래스 추가

<div id="popup_01" class="popupLayer" data-id=" 

 

 

 

님 댓글 감사합니다.
올려주신 코드 참고해서 아래와 같이 해결하였습니다.
정말 감사합니다.

혹 저처럼 필요하신분들 계실수도 있으니 전체 소스 남깁니다.^^;


<?php
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/rumiPopup.css">', 0);
add_javascript('<script src="'.$board_skin_url.'/jquery.rumiPopup.js"></script>', 0);
?>

<?php for ($i=0; $i<count($list); $i++) { ?>
<div class="popupLayer" data-id="<?php echo $list[$i]['wr_id']; ?>" data-subject="<?php echo $list[$i]['wr_subject']; ?>">
<?php echo $list[$i]['wr_subject']; ?>
</div>
<?php } ?>

<script>
$(document).on('click', '.popupLayer', function(e){
    rumiPopup.popup({
        width : 800, // 팝업창 가로크기
        height : 600, // 팝업창 세로크기
        fadeIn : true, // 팝업시 이펙트종류
        fadeinTime : 500, // 이펙트 지연시간
        url : "<?php echo $board_skin_url; ?>/popup.php?bo_table=<?php echo $bo_table; ?>&wr_id="+$(this).attr('data-id'), // 불러올문서
        title : $(this).attr('data-subject'), // 팝업창 제목
        buttonView : true,
        reloadBtn : true,
        button : {
            "닫기" : function(){
                rumiPopup.close(); // 팝업창 닫기
            },
        },
        open : function(){
            $("div.rumiButton button:contains('닫기')").css({"background":"#555"});
            $("div.rumiButton button:contains('삭제')").css({"background":"#555"}).hide();
        },
        close : function() {
        }
    });
});
</script>

 

개인적인 생각은 이래요 

캠핑장 집을 만들때 대충 만들면되자나요   

집이나 빌딩을 만들면 대충만들면 안되지만 

방법은  많아요
개발자의 스킬  php 자바스크립트 제쿼리 css 등등의 스킬에따라
url : $(this).attr('data-id')

소스는  대체가능 하다 생각 합니다

위 소스만으로는(개발 환경 변수를 모을때 ) 저 소스가 정답인지 판단을 할수 없는게 아니까하는 생각이죠
거슬려다면 정말 죄성 합니다

당연히 개발자의 능력에 따라 방법은 많을 수 있겠죠.
전 완벽한 정답을 찾는게 아닙니다.
제 질문에 어디 완벽한 정답 알려달라고한 문구있나요?

제가 getElementById("popup_01") 와 url : $(this).attr('data-id') 를
어떻게 고치면 가능한가 문의 드렸는데 엉뚱한 댓글???

님께서 얼마나 대단한 실력을 갖췄는지는 모르겠지만
심히 불쾌하네요.

열공중님 은 자바스크립트 안에 제이쿼리 구문을 이용해서 개발을 하는것인데요
구지 위소스를 제이쿼리 소르로 바꿔야 한다면 

전부 할수없고요 일부만 한다면
for 문은 반복문으로 위처럼 만들면 popup_01 동일한 값이 count($list) 생성이 되면서 
id 값으로 제이쿼리에서 불러오기가 어려워요

(아이디 값은 페이지 내에서 유일 해야한다고 생각 합니다.)
그래서 제가 한다면 <div id="popup_01" 을 <div class="popup_01" 로 수정 을 하고
 document.getElementById("popup_01").onclick = function() {
위소스를 
        $('.popup_01').click(function(){

                  // $(this).attr('data-id')

//<div id="popup_01" data-id='값' 을 제이쿼리에서 가져오는 방법은 

data-id   -뒤에 있는 단어로 가져오는 것으로 알고있습니다

            var id=$(this).data('id');
//alert(id);
//console.log(id);
        });

이러게 변경 하면 될듯합니다.

 

 

그리고 미흡한 답변을 드려 정말 죄성 합니다.

 

참고로 루미집사님의 소스 프로그인은 그리 간단이 

수정개발이 힘들다고 생각됩니다

Js 파일 과 css html php파일 전부 보셔야 합니다

공부 하는것이 목적이라면

우선 기본적 디자인 클래스 프로그램 클래스

디자인 속성  프로그램속성 

자바스크리트의 문법 을 간단한거부터 시작 하는 것을 추천 합니다

정말 미흡한 답변으로 기분 상하게 하여 정중히 사고 드려요

필요 하시면 전화 하시면 전화상으로 사과드릴게요

답변을 작성하시기 전에 로그인 해주세요.
전체 83
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT