JQquery_jquery 사용 경험 공유

WBOY
풀어 주다: 2016-05-16 17:51:22
원래의
1195명이 탐색했습니다.

어제 내 결과 - 오른쪽 하단에 영구 메시지 프롬프트

코드 복사 코드는 다음과 같습니다.

var msgClass = function(){
this.init = function(){
var msgDiv = "
"
"" 부동: 왼쪽; 너비: 30px; 글꼴 크기: 12px; 줄 높이: 30px; 위치: 상대; 배경색: #eff;"
""
"새로운 소식이 있으니 꼭 확인해 주세요! >"
"
"
"
"
    "
    "
" ;"
"
";
$("body ", window.parent.document).append(msgDiv)
$("#msg_show_a", window.parent.document). click(function(){msg_click()})
}
var msg_click = function(){
var msgDiv = window.parent.document.getElementById("msg_block")
if ( "없음" == msgDiv.style.display) {
msgDiv.style.display = "차단";
} else {
msgDiv.style.display = "없음"
}
}
this.getMessage = function() {
$.ajax( {
tyep : "POST",
url : "/msg/getPromptMsgInfo.action",
success : function (msg) {
var json = eval(msg);
var num = json.length;
if (num != 0) {
$("#msg_show",window.parent. document).css("display", "");
$("# msg_content", window.parent.document).empty()
for ( var i = 0; i < num; i ) {
var title = json[i].TITLE.substr(0, 12 )
var sub = "
  • json[i].TITLE
    "" >
    "
    title
    "
  • ";
    var MSG_ID=json[i].MSG_ID;
    var RELATION_ID=json[i]. RELATION_ID;
    $("#msg_content", window.parent.document).
    $(" #a_" i, window.parent.document).click("{'MSGID': '" MSG_ID "','RELATIONID':'" RELATION_ID "'}",
    function(e){
    msgSelected (e.data);
    });
    }
    } else{
    $("#msg_show", window.parent.document).css("display", "none");
    }
    }
    });
    }
    var msgSelected = function(data) {
    var href = ""; var json
    eval(" json=" data);
    var msgId = json.MSGID;
    var 관계Id = json.RELATIONID;
    /*start----논리 작성*/
    if (1 == 관계Id ) {
    href = "/usercenter/showWaitDiagnose.action?isOnClick=3"
    }
    //........
    /*end----*/
    $.ajax( {
    유형 : "post",
    url : "/msg/updateMsgStatue.action",
    data : "msgId=" msgId,
    성공 : function() {
    parent.window.location.href = href;
    }
    })
    }
    }
    function getMsg(){
    new msgClass().getMessage() ;
    }
    $(document).ready(function(){
    var msg = new msgClass();
    msg.init();
    msg.getMessage();
    setInterval("getMsg()", 3000)
    });
    우선 제가 jQuery를 꽤 잘 사용한다고 생각했지만 어제 작업을 마치고 이제 막 시작했다는 걸 깨달았습니다. 괜찮은. 다음으로는 어제 겪었던 문제점과 해결방안에 대해 간략히 말씀드리겠습니다.
    1. iframe에서 상위 창의 요소를 가져옵니다.
    예: 일부 요소를 동적으로 삽입할 수 있도록 상위 창에서 본문을 가져옵니다. $("body", window.parent.document)
    기본 키가 ID인 상위 창에서 요소 가져오기: $("#identity", window.parent.document)
    요약: $(선택기, 가져오려는 창의 문서 개체), 위!
    2. 요소 이벤트를 동적으로 추가합니다
    좋습니다. 먼저 작성하는 방법 두 가지를 알려드리고 어느 것이 맞는지 생각해 보시면 됩니다. JS 메서드가 있다고 가정합니다: function fun(){....} html이 있습니다:
    이 div에 대한 onclick 이벤트를 추가합니다
     2.1 $(" #div1 ").click(fun());
    2.2 $("#div1").click(function(){fun()});
    좋아요, 2.1인가요, 2.2인가요?
    생각해보셨나요? 정답은 2.2입니다. 믿을 수 없다면 시도해 볼 수 있습니다. 2.1 방법을 사용하면 fun()을 실행하는 것과 효과가 동일합니다.
    3. 매개변수 전달 문제
    메소드에 대해 이야기했으니 이제 매개변수에 대해 이야기해야 합니다. function fun(a, b){....} 메소드가 있다고 가정합니다. 이제 다른 메소드에서 2.2 메소드를 호출하여 div에 이벤트를 추가합니다.
     예:
    코드 복사 코드는 다음과 같습니다.

    function fun1( ){
    for(var i = 0; i var a = i
    var b = i
    $("#div1").click( function(){
          fun(a,b)
       }); a와 b의 값이 실제 값과 다릅니다. 해결책은 다른 클릭 방법을 호출하는 것입니다.
      $("#div1").click(msg,function(e){fun(e.data)};
      여기서 msg는 문자열 유형 값입니다. 가장 간단한 방법은 전송할 매개변수를 전달하는 것입니다. json 형식으로 작성하세요.
    여기서 e가 전송하려는 데이터라고 생각할 수도 있습니다. 실제로는 여기의 e가 우리가 보내는 데이터를 포함하는 객체입니다.
    어쩌면 e.data가 더 궁금하실 수도 있습니다. 사실 우리가 보내려는 데이터 메시지는 firebug를 통해 확인할 수 있습니다. :




    코드 복사

    코드는 다음과 같습니다.  함수 fun(data)  { var json eval("json=" data);
    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿