부트 스트랩 데이터 저장-모달, 배지 및 경고

user1752759

내 웹 페이지에 example / demo 코드 줄이 있습니다 .

 

/* Messages Modal */
$(document).ready(function(){
    var informer = $("#messageInformer a");
    var refreshBadge = function(messageCount) {
        var badge = informer.find(".badge");
        
        if (messageCount > 0) {
            if (!badge.length) {
                informer.text("Messages ");
                informer.append("<span class=\"badge\">" + messageCount + "</span>");
            } 
            
            else {
                badge.text(messageCount);
            }
        } 
        
        else {
            // informer.text("No messages");
            informer.text("Messages ");
            informer.append("<span class=\"badge\">" + messageCount + "</span>");
        }
    };

    var buildMessage = function(message) {
        var htmlMessage = "<div class=\"alert fade in\">";
        
        htmlMessage += "<a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-lable=\"close\" data-id=\"" + message.id + "\">&times;</a>";
        htmlMessage += "<strong>" + message.title + "</strong>";
        htmlMessage += "<p>" + message.text + "</p>";
        
        return htmlMessage;
    }

    // Messages To Display
    var messages = [
        { 
	        id: "1", 
	        title: "Title 01:",
 	        text: "<ul> \
 	        <li>List Item</li> \
 	        <li>List Item</li> \
 	        </ul> \
 	        <br/> \
		<p>Paragraph</p> \
		<p>E-Mail: <a href=\"mailto:[email protected]\">[email protected]</a></p> \
	        " 
        },
        { 
	        id: "2", 
	        title: "Title 02:", 
	        text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat velit et vehicula vulputate." 
        },
        { 
	        id: "3", 
	        title: "Title 03:", 
	        text: "Quisque viverra nisl ut arcu eleifend aliquam. Ut faucibus efficitur nibh, sit amet tincidunt est volutpat non." 
        }
    ];

    refreshBadge(messages.length);

    informer.on("click", function(e) {
        e.preventDefault();
        var modalBody = $(".modal-body");
        modalBody.empty();
        for (var i = 0; i < messages.length; i++) {
            modalBody.append(buildMessage(messages[i]));
        }
        
        if (messages.length == 0) {
            $('.modal-body').text('There are no more messages to display.');
        }
    });

    $("body").delegate(".alert .close", "click", function() {
        var messageId = $(this).data("id");
        // AJAX 
        messages = messages.filter(function(el) {
            return el.id != messageId;
        });
        
        if (messages.length == 0) {
            // $("#messagesModal").modal("hide");
            $('.modal-body').text('There are no more messages to display.');
        }
        
        refreshBadge(messages.length);
    });
});
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

<p data-toggle="modal" data-target="#messagesModal" id="messageInformer"><a href="#">Messages <span class="badge"></span></a>
</p>

<!-- Modal -->
<div class="modal fade" id="messagesModal" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">Messages</h4>
      </div>

      <div class="modal-body">
      </div>

      <div class="modal-footer">
        <div class="col-md-8 pull-left">
        </div>

        <div class="col-md-4">
          <button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
</div> 

페이지를 새로 고칠 때 모달, 배지 및 경고의 데이터를 어떻게 저장할 수 있습니까?

예를 들어 세 개의 메시지 중 하나를 제거한 다음 페이지를 새로 고치면 두 개의 메시지 만 사용할 수 있습니다.

심판

구현하려는 샘플 목적에 대한 위의 답변 때문에 내 답변을 편집하지 않을 것입니다 sessionStorage. 여기에서 특정 문제를 해결하여 문제를 해결할 수 있도록 다른 코드를 게시하겠습니다.

sessionStorage하나의 탭에서 작동하는 요소를 이미 제거하는 관리 기술을 구현 하고 있습니다. 테스트 목적으로 나는 그것에 대한 바이올린을 설정하지 않으므로 코드를 복사하고 로컬 환경에서 설정하면됩니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

</head>

<script>

$(document).ready(function(){
    var informer = $("#messageInformer a");
    var refreshBadge = function(messageCount) {
        var badge = informer.find(".badge");

        if (messageCount > 0) {
            if (!badge.length) {
                informer.text("Messages ");
                informer.append("<span class=\"badge\">" + messageCount + "</span>");
            } 

            else {
                badge.text(messageCount);
            }
        } 

        else {
            // informer.text("No messages");
            informer.text("Messages ");
            informer.append("<span class=\"badge\">" + messageCount + "</span>");
        }
    };

    var buildMessage = function(message) {
        var htmlMessage = "<div class=\"alert fade in\">";

        htmlMessage += "<a href=\"javascript:;\" class=\"close\" data-dismiss=\"alert\" aria-lable=\"close\" data-id=\"" + message.id + "\" onclick='deleteIds(this)'>&times;</a>";
        htmlMessage += "<strong>" + message.title + "</strong>";
        htmlMessage += "<p>" + message.text + "</p>";

        return htmlMessage;
    }

    // Messages To Display
    var messages = [
        { 
            id: "1", 
            title: "Title 01:",
            text: "<ul> \
            <li>List Item</li> \
            <li>List Item</li> \
            </ul> \
            <br> \
        <p>Paragraph</p> \
        <p>E-Mail: <a href=\"mailto:[email protected]\">[email protected]</a></p> \
            " 
        },
        { 
            id: "2", 
            title: "Title 02:", 
            text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam volutpat velit et vehicula vulputate." 
        },
        { 
            id: "3", 
            title: "Title 03:", 
            text: "Quisque viverra nisl ut arcu eleifend aliquam. Ut faucibus efficitur nibh, sit amet tincidunt est volutpat non." 
        }
    ];


    removeDeletedItem(messages);

    refreshBadge(messages.length);

    informer.on("click", function(e) {
        e.preventDefault();
        var modalBody = $(".modal-body");
        modalBody.empty();
        for (var i = 0; i < messages.length; i++) {
            modalBody.append(buildMessage(messages[i]));
        }

        if (messages.length == 0) {
            $('.modal-body').text('There are no more messages to display.');
        }
    });

    $("body").delegate(".alert .close", "click", function() {
        var messageId = $(this).data("id");
        // AJAX 
        messages = messages.filter(function(el) {
            return el.id != messageId;
        });

        if (messages.length == 0) {
            // $("#messagesModal").modal("hide");
            $('.modal-body').text('There are no more messages to display.');
        }

        refreshBadge(messages.length);
    });
});

function deleteIds(obj){
    var currentId = $(obj).attr('data-id');
    var id = sessionStorage.getItem("id");

    if(id == null){
        sessionStorage.setItem("id", currentId);
    }else{
        var str = id.split(',').join();
        str = str + ','+ currentId
        sessionStorage.setItem("id", str);
    }
    $(obj).parent().hide();
}

function removeDeletedItem(obj){
    var id = sessionStorage.getItem("id");
    if(id != null){
        var temp = id.split(',');   
        $.each(temp, function(index, value){

                var i = -1;
            $.each(obj, function(ind,val){
                if(val.id == value)
                i = ind;
            });

            if(i != -1){
                obj.splice(i,1);
            }
        });
    }
}

</script>
<body>
<p data-toggle="modal" data-target="#messagesModal" id="messageInformer"><a href="#">Messages <span class="badge"></span></a>
</p>

<!-- Modal -->
<div class="modal fade" id="messagesModal" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">Messages</h4>
      </div>

      <div class="modal-body">
      </div>

      <div class="modal-footer">
        <div class="col-md-8 pull-left">
        </div>

        <div class="col-md-4">
          <button type="button" class="btn btn-default pull-right" data-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
</div> 
 </body>
</html>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SQL 및 PHP를 사용하여 페이지에서 부트 스트랩 모달로 데이터 전달

분류에서Dev

부트 스트랩의 모달 배경 페이드 쇼

분류에서Dev

배경 페이드 부트 스트랩 아래의 모달

분류에서Dev

여러 모달에 대한 부트 스트랩 모달 키보드 및 배경 속성 문제

분류에서Dev

부트 스트랩 모달에 입력 된 데이터를 다른 모델에 저장하는 방법

분류에서Dev

부트 스트랩 모달이 열리지 만 회색 배경에 유지되고 닫히거나 모달과 상호 작용할 수 없음

분류에서Dev

부트 스트랩 모달이 배경 "뒤"로 이동하고 사용자가 클릭 할 수 없습니까?

분류에서Dev

부트 스트랩 모달이로드 되 자마자 사라지지만 Safari에서 배경이 남음

분류에서Dev

부트 스트랩 모달은 데이터 이미지를 소스로 사용

분류에서Dev

부트 스트랩 환약 및 배경

분류에서Dev

전체 페이지 너비로 확장되는 부트 스트랩 모달?

분류에서Dev

부트 스트랩 모달 / jAlert 경고가 전체 페이지에 표시되지 않음

분류에서Dev

웹 양식의 부트 스트랩 모달 새로 고침 페이지

분류에서Dev

트위터 부트 스트랩 팝업 모달 슬라이드를 만들고 페이지 하단에 고정

분류에서Dev

트위터 부트 스트랩 팝업 모달 슬라이드를 만들고 페이지 하단에 고정

분류에서Dev

부트 스트랩 모달이 표시되지 않습니다. 배경 만 검은 색이됩니다.

분류에서Dev

트위터 부트 스트랩 모달을위한 jQuery 배열?

분류에서Dev

제출시 부트 스트랩 모달의 데이터를 지우는 방법

분류에서Dev

데이터를 표시하지 않는 부트 스트랩 모달

분류에서Dev

스크롤바 배경을 보여주는 부트 스트랩 모달 라이트 박스

분류에서Dev

페이지에서 부트 스트랩 모달 및 작업 결과로 값 전달

분류에서Dev

jQuery / JavaScript를 사용하여 iOS 장치를 감지하고 iPhone 및 iPad 전용 부트 스트랩 모달을 숨기는 방법은 무엇입니까?

분류에서Dev

부트 스트랩 모달 배경 검정

분류에서Dev

각도 및 부트 스트랩 모달

분류에서Dev

부트 스트랩 모달 및 AngularJS

분류에서Dev

부트 스트랩 페이지의 모바일 버전에서 로고 변경

분류에서Dev

모달 제목 및 텍스트가 표시되지 않음 (부트 스트랩)

분류에서Dev

부트 스트랩 모달로 데이터 전달

분류에서Dev

모달에 데이터를 전달하는 부트 스트랩

Related 관련 기사

  1. 1

    SQL 및 PHP를 사용하여 페이지에서 부트 스트랩 모달로 데이터 전달

  2. 2

    부트 스트랩의 모달 배경 페이드 쇼

  3. 3

    배경 페이드 부트 스트랩 아래의 모달

  4. 4

    여러 모달에 대한 부트 스트랩 모달 키보드 및 배경 속성 문제

  5. 5

    부트 스트랩 모달에 입력 된 데이터를 다른 모델에 저장하는 방법

  6. 6

    부트 스트랩 모달이 열리지 만 회색 배경에 유지되고 닫히거나 모달과 상호 작용할 수 없음

  7. 7

    부트 스트랩 모달이 배경 "뒤"로 이동하고 사용자가 클릭 할 수 없습니까?

  8. 8

    부트 스트랩 모달이로드 되 자마자 사라지지만 Safari에서 배경이 남음

  9. 9

    부트 스트랩 모달은 데이터 이미지를 소스로 사용

  10. 10

    부트 스트랩 환약 및 배경

  11. 11

    전체 페이지 너비로 확장되는 부트 스트랩 모달?

  12. 12

    부트 스트랩 모달 / jAlert 경고가 전체 페이지에 표시되지 않음

  13. 13

    웹 양식의 부트 스트랩 모달 새로 고침 페이지

  14. 14

    트위터 부트 스트랩 팝업 모달 슬라이드를 만들고 페이지 하단에 고정

  15. 15

    트위터 부트 스트랩 팝업 모달 슬라이드를 만들고 페이지 하단에 고정

  16. 16

    부트 스트랩 모달이 표시되지 않습니다. 배경 만 검은 색이됩니다.

  17. 17

    트위터 부트 스트랩 모달을위한 jQuery 배열?

  18. 18

    제출시 부트 스트랩 모달의 데이터를 지우는 방법

  19. 19

    데이터를 표시하지 않는 부트 스트랩 모달

  20. 20

    스크롤바 배경을 보여주는 부트 스트랩 모달 라이트 박스

  21. 21

    페이지에서 부트 스트랩 모달 및 작업 결과로 값 전달

  22. 22

    jQuery / JavaScript를 사용하여 iOS 장치를 감지하고 iPhone 및 iPad 전용 부트 스트랩 모달을 숨기는 방법은 무엇입니까?

  23. 23

    부트 스트랩 모달 배경 검정

  24. 24

    각도 및 부트 스트랩 모달

  25. 25

    부트 스트랩 모달 및 AngularJS

  26. 26

    부트 스트랩 페이지의 모바일 버전에서 로고 변경

  27. 27

    모달 제목 및 텍스트가 표시되지 않음 (부트 스트랩)

  28. 28

    부트 스트랩 모달로 데이터 전달

  29. 29

    모달에 데이터를 전달하는 부트 스트랩

뜨겁다태그

보관