2012-11-21 2 views
1

여기에 이상한 점이 있습니다. 숨겨진 요소 (숨겨진 표시)가 있는데 다른 요소를 마우스로 가리키면 표시하려고합니다. javscript는 그 일을하는 것처럼 보이지만 엘리먼트가 display에서 hidden으로 변하면 아무 일도 일어나지 않습니다 : hidden; 표시 : 블록;마우스 오버 효과가 작동하지 않습니다.

이 내 HTML 부분이다 : 그것은 내가 자바 스크립트를 그대로 사용했습니다 멋지 TPL 파일에 있기 때문에

<div id="cart_block" class="block exclusive" style="display: none;"> 
    a bunch more code in here, but I don't suppose I need to display that 
</div> 

. 너무과 같습니다

<script type="text/javascript"> 
{literal} 
    document.getElementById('header_user').onmouseover=function(){ 
     document.getElementById('cart_block').style.display='block'; 
    }; 
    document.getElementById('header_user').onmouseout=function(){ 
     document.getElementById('cart_block').style.display='none'; 
    }; 
{/literal} 

당신은 http://www.jiblab.dk에서 볼 수 있습니다. id가 cart_block 인 요소를 보면 오른쪽 상단 모서리에 마우스를 올리면 스타일 태그가 변경되지만 숨겨진 상태로 유지됩니다. 위의 html에서 style = "display : none"을 제거하면 내 요소가 표시되므로 내 머리 속에서 이것이 작동합니다.

+0

이 스타일을 설정 한 후에도 : ​​display : block; 여백 : 0; 위치 : 절대; 왼쪽으로 뜨다; 상단 : 0 픽셀; 왼쪽 : 0px; 너비 : 100px; height : 100px;', 나는 그것을 보여줄 수 없다. 무슨 일로 망설이는지 모르겠다. – Cerbrus

답변

2

#cart_block 요소가 display:none 인 다른 div에 있습니다.

다음 블록이 정의로부터 제거 .top 헤더 .SF-contener가 필요 하나이이 요소 밖으로 cart_block 요소를 이동

.top-header #currencies_block_top, .top-header #header_links, .top-header #search_block_top, .top-header .sf-contener { 
    display: none; 
} 
+0

나는이 두 가지 옵션 밖에 가지고 있지 않습니까? 것은 내가 prestashop 주위에별로 좋지 않다는 것입니다 - 당신이 참조하는 요소는 prestashop의 hook_top 호출과 함께 호출됩니다. så로 이동하면 새로운 훅을 추가하고 cart_block을 첨부해야합니다. 어떻게해야할지 모르겠다. (다른 건 내가 뭘 할 수 있는지 모른다.) – Viktor

+0

나는 가시성을 추가했다 : 숨겨진; 컨테이너의 특정 요소에 표시 : 블록; 컨테이너에서.이게 문제를 해결했다. 정말 고마워! 이것을 고려해야한다는 것을 몰랐기 때문에 감사합니다 :) – Viktor

0

사용

$(document).ready(function(){ 

document.getElementById('header_user').onmouseover=function(){ 
     document.getElementById('cart_block').style.display='block'; 
    }; 
    document.getElementById('header_user').onmouseout=function(){ 
     document.getElementById('cart_block').style.display='none'; 
    }; 


}); 

document.ready
<div id="header_user" style="width:100px; height:20px; border:1px solid black;"></div> 

<div id="cart_block" class="block exclusive" style="display: none;"> 
    a bunch more code in here, but I don't suppose I need to display that 
</div> 
+0

함수가 호출되었으므로 doc-ready를 사용하는 것이 해결책이라고 생각하지 않습니다. – Viktor

관련 문제