2012-08-07 2 views
0

본문의 ID가 # modulePage16460412 인 내 사이트의 한 페이지에서만 기능을 수행하고 싶습니다. 내가 작동하지 않는 아래의 스크립트가 있습니다.본문 ID가 특정 값인 경우 기능 수행

<script type="text/javascript"> 
if($('#modulePage16460412').length > 0) { 
$(function() 
{ 
$(window).bind('load', 
    function(e) 
    { 
    window.setTimeout(function() 
     { 
     $.colorbox({opacity:0.3, href:"/storage/support/colorbox/offer.html"}); 
     }, /*timeout->*/ 2000); 
    }); 
}); 
} 
</script> 

페이지를 처음 방문 할 때만 함수를 실행할 수 있으며 해당 페이지로 돌아 가면 다시 실행할 수 없습니까?

도움을 주시면 감사하겠습니다.

+1

왜 스크립트에서이 기능을 사용하지 말고 해당 기능을 사용해야하는 페이지의 HTML에만 추가할까요? –

+0

질문의 두 번째 부분은 쿠키 또는 localStorage를 사용해야합니다. 이 경우 localStorage는 서버가 실제로이 정보를 신경 쓰지 않기 때문에 쿠키에 저장하고 서버로 보내야하는 이유는 무엇입니까? localStorage는 클라이언트에만 있습니다. – rlemon

+0

완벽한 솔루션 scott.korin! 확실히 "왜 그런 생각을하지 않았습니까?"순간 :) 감사합니다! – Travis

답변

0

$(function(){ 안에 조건을 넣어 JavaScript가 (존재하지 않는) DOM에 ID가 존재하는지 쿼리하기 전에 body 태그가 실제로로드되도록해야합니다.

$(function(){ 
    if($('#modulePage16460412').length) { 

     ... 

    } 
}); 
0

어디에도 전화하지 않지만 기능을 정의합니다.

그래서 모든 기능을 넣고 전화를 겁니다.

또한 경우 ($ ('#의 modulePage16460412') 길이> 0.)이 교체를 가진 경우 ($ ('#의 modulePage16460412')), JQuery와 couldnt는 ID를 가진 요소를 찾을 때 때문에 : # modulePage16460412를, 비어 돌아갑니다 정렬. empty_array.length = 0이므로 항상 참입니다. 어떤 요소는 다음 함수가 불 않습니다이 ID에 존재하지 않는 경우

$('document').ready(function(){ 

if($('#modulePage16460412')) { 
$(function() 
{ 
$(window).bind('load', 
    function(e) 
    { 
    window.setTimeout(function() 
     { 
     $.colorbox({opacity:0.3, href:"/storage/support/colorbox/offer.html"}); 
     }, /*timeout->*/ 2000); 
    }); 
}); 
} 

}); 
1

당신은 ... 지정된 ID로를 선택 몸의 하중에 기능을 넣을 수 있습니다.

$('#modulePage16460412').load(function() { // this will not be called unless an element with that ID has loaded into the DOM 

    // ... your code here. 

}); 

하고 '단일 실행'부분에 접촉하는 (이 정말 새로운 질문해야한다 ...하지만 잘 오) 당신은 설정을 유지하기 위해 로컬 스토리지를 사용할 수 있습니다. 아마도

if(!getData('someKey')) { 
    // ok so they have not been here. 
    setData('someKey', 1); // now set the data so this won't get hit again. 
} 
0

간단한 방법처럼 경우 뭔가

http://jsfiddle.net/rlemon/ET9Zg/

?

$(document).ready(function() { // runs code only after DOM ready 
    if ($('#modulePage16460412').length > 0) { // runs code only if id found 
     window.setTimeout(function() { 
      $.colorbox({ opacity:0.3, href:"/storage/support/colorbox/offer.html" }); 
     }, 2000); 
    } 
}); 
관련 문제