2014-01-13 5 views
0

이것은 바보 같은 문제이지만 문제는 없습니다. 나는 단순히 화면에 나타난 후에 패널의 "최상위"값을 얻으려고합니다. 따라서 패널을 렌더링 할 때 페이지로 이동하면 최상위 값을 얻고 싶습니다. 다음은 내가 사용하고있는 코드입니다.jQuery에서 div의 최상위 값을 얻는 방법

//signinput is the panel whose top value I want  
$("#signinput").bind('afterShow', function() 
    { 
     TopVal = $("#signinput").position().top; 
     alert(TopVal); 
     TopVal = TopVal+"px"; 
    }); 

그러나이 코드는 아무런 경고도하지 않습니다. 그래서 어떤 이유로이 바인딩을 할 수있는 함수는 어떤 이유로 든 이벤트가 실행되지 않습니다. 어떤 제안?

var TopVal = $("signinput").scrollTop(); 

편집 : 당신이 값을 전달하지 않으면

<div id="signinput"> 
       <div class="panel"> 
       <center> 
        <h3>Sign Into Blah Blah</h3> 

         <form name="SignIn" action="#" method="post"> 
          <input type="text" name="signinemail" id="signinemail" placeholder="Enter Email"> 
          <input type="password" name="signinpassword" id="signinpassword" placeholder="Enter Password"> 
          <input type="submit" id ="signinsubmit" name="signinsubmit" value="Sign In" data-theme="a"> 
         </form> 
       </center> 
       </div> 
      </div> 
+0

ur url code !!!!! – rynhe

+1

'afterShow'는 기본 이벤트가 아닙니다. 해당 이벤트를 제공하는 플러그인을 사용하고 있습니까? – adeneo

+1

은'afterShow'입니까 ?? 귀하의 coustome 이벤트 .. 만약 그렇다면 .. 당신이 그것을 방아쇠를 당길 필요가 .. – bipen

답변

0

는 더 afterShow 이벤트가 없으며, 사업부는 즉시 렌더링됩니다으로 더로드 이벤트가 없습니다, 그래서 당신이해야 할 유일한 일은 DOM 준비 처리기입니다 :

$(function() { 
    TopVal = $("#signinput").position().top; 
    alert(TopVal); 
    TopVal = TopVal+"px"; 
}); 
0

이 기능은 최고 값을 반환 : 여기

내 HTML 코드는 "고 말했다 그런데 화면에 표시 한 후 ", jquery.live를 사용하여 업데이트 된 문서의 요소를 검색 할 수 있습니까? 그렇지 않으면 JQuery와 선택 $ ("singinput")는 NULL이 될 것입니다 :

사용 :

$("#signinput").live("afterShow", function() 

//// 몇 가지 추가 정보 :

그리고 당신은 함수에 숫자 매개 변수를 전달 할 때 " scrollTop "대신에 그것을 수정할 수 있고 브라우저가이 컨테이너를 스크롤하도록 할 수 있습니다.

참조 : afterShow가 당신에게 coustom 이벤트 인 경우

http://api.jquery.com/scrolltop/

0

아니라, 당신은

은 내가이

$(function(){ 
    $("#signinput").bind('afterShow', function() 
    { 
     TopVal = $("#signinput").position().top; 
     alert(TopVal); 
     TopVal = TopVal+"px"; 
    }); 
    $('#signinput').trigger('afterShow'); 
}); 

을 시도 document.ready 함수를 실행하는 데 필요 확실하지 않은 이유는 무엇입니까? document.ready 내부에서 top을 호출하면 작동합니다 (afterShow 이벤트 내부에 경고가있는 경우).

$(function(){ 

    TopVal = $("#signinput").position().top; 
     alert(TopVal); 
     TopVal = TopVal+"px"; 
}); 
0

그렇게하지 "afterShow"가 어떤 이벤트를 띄울 지 알지만 시도한 후에이 트리거가있는 요소가 표시되면이 트리거로 들어갈 수 없음을 알았습니다.

저는 adeneo의 대답이 여러분의 질문에 대한 해결책 일 수 있다고 생각합니다.

관련 문제