2013-05-19 2 views
1

내 로고 위로 마우스를 가져 가면 메시지가 표시되는 스크립트를 실행하려고합니다. 난 단지 768e.g보다 큰 화면 크기에서 작동하기를 바랄 뿐이다. div가 표시되고 목록에서 임의의 메시지가 표시됩니다.조건이 충족되면 크기 변경시 jQuery 함수를 실행하십시오.

크기가 변경되면 내 콘텐츠 컨테이너가 692보다 크거나 같은지 확인한 다음 본문에 hoverInfo 클래스를 추가합니다. 이 클래스가 존재하는 경우에만 스크립트를 실행하려고하지만 스크립트는 여전히 관계없이 실행됩니다.

현재 doc.ready에서 스크립트를 실행하지만 스크립트를 실행하여 창 크기와 doc.ready의 너비를 확인하십시오.

도움이 될 것입니다.

$(function(){ 
    function checkWidth() { 
     if ($('#content-wrap').width() == 692) { 
      $('body').addClass('hoverinfo');   
     } else { 
      $('body').removeClass('hoverinfo'); 
     } 
    } 
    checkWidth(); 

    $(window).resize(function() { 
     setTimeout(checkWidth, 200); 
    }); 

    function showText(){ 
     $randomText = $(".page #messages"); 
     $(".hoverinfo #logo").hover(
      function() { 
       $randomText.show(); 
      }, 

      function() { 
       $randomText.hide(); 
      } 
     );    
    }  
    showText();     
}); 
+1

먼저 (당신이 "준비"를 제거하거나 하나 하나 모두 $ (함수 래퍼를 교체하거나 있도록 기능이 동일합니다. 또한, "클래스가 존재하는 경우에만"은 무엇을 의미합니까? 몸에 존재하거나 정의되어 있습니까? –

+0

응답 해 주셔서 감사합니다. 사이트의 반응이 좋으므로 컨테이너 너비가 692 이상인 경우 (내 표준 ipad 및 데스크탑 레이아웃) hoverInfo 클래스를 추가하고 싶습니다. 크기가 작 으면 본문에서 제거합니다. 마크 업에서 정의되지 않았으며 일단 너비를 확인한 후에는 문서 준비가 완료됩니다. 머리 감사합니다 – Rich

답변

0

호버가 jquery의 라이브 이벤트로 작동하지 않는다고 생각합니다. 그래서 스스로를 설정하고 페이지로드의 나머지 기간 동안 머무를 것입니다.

시도;

 $(".no-touch .page.hoverinfo #logo").on("mouseenter", function(){ 
      $randomText.show(); 
      var aux=hoverText($text); 
      $(".page #messages li:eq("+aux+")").show(); 
      $("#logo").css('opacity','1'); 
     }); 

     $(".no-touch .page.hoverinfo #logo").on("mouseleave", function(){ 
      $randomText.hide(); 
      $text.hide(); 
      $("#logo").css('opacity','1'); 
     }); 

또한 나는 오타가 있다고 생각합니다.

if ($('#content-wrap').width() == 692) { 

if ($('#content-wrap').width() >= 692) { 
+0

답변 해 주셔서 감사합니다. 불행히도 해결되지 않았습니다. 문제. 스크립트는 바탕 화면 너비에서 제대로 작동하지만 크기를 작게 조정하면 작동하지 않습니다. 호버 메시지가 계속 표시됩니다. 320px에서 새로 고침을하면 스크립트가 작동하지만 크기를 다시 설정하면 올바른 클래스가 추가되지만 커서를 다시 실행하지는 않습니다. – Rich

0

제 제안은 메시지를 볼 수있는 화면 크기를 지정하는 것입니다. 어쩌면 스타일 시트에서 다음

<div class="showOnLrg"> 
<h3 id="randomText" style="display:none;"></h3> 
</div> 

는 미디어 쿼리

.showOnLrg{display:none;} 
@media screen and(min-width : 768px){ 
.showOnLrg{display:block;} 
} 

숨기고 호버 기능에 jQuery를 사용하여 텍스트를 표시 할 수 있습니다 그 방법과 규칙을 가지고과 같이 사업부의 내부에 텍스트 내용을 포장 크기 조정 기능에서 화면 해상도를 확인하지 않고도 실제로 크기 조정 기능이 필요하지 않습니다. 예, 마우스 오버 기능이 작동하지만 텍스트의 부모 컨테이너가 숨겨져 있으면 텍스트를 전환 할 때 텍스트가 표시되지 않습니다. 그래서 호버 기능을 그렇게 선언 할 수 있습니다.

$(".hoverinfo #logo").hover(
      function() { 
       $randomText.show(); 
      }, 

      function() { 
       $randomText.hide(); 
      }); 

크기 조정 기능 내에서 설정하는 경우 div 크기가 아닌 창 크기를 확인해야합니까?

당신이 .ready $부터 $ (문서)를 필요로하지 않는 모든
$(window).width(); 
관련 문제