1
이 스크립트를 디버깅하는 데 문제가 있습니다. 초기 문제는 "$(). 준비가 함수가 아닙니다."스크립트의이 부분을 래핑했습니다.
$(document).ready(function()
{ $('#jsddm > li').bind('mouseover', jsddm_open);
$('#jsddm > li').bind('mouseout', jsddm_timer);});
document.onclick = jsddm_close;
그래서
(function($) {
$(document).ready(function() {
$('#menu-main-nav > li').bind('mouseover', jsddm_open);
$('#menu-main-nav > li').bind('mouseout', jsddm_timer);
});
document.onclick = jsddm_close;
}) (jQuery);
같은
까지하지만 지금은 $ (이)를 얻을 .find 라인에 함수가 아니다 "jsddm_close은();" - 어떤 도움을 주셔서 감사합니다. 전체 스크립트를 다음과 같이
<script type="text/javascript">
var timeout = 500;
var closetimer = 0;
var ddmenuitem = 0;
function jsddm_open()
{ jsddm_canceltimer();
jsddm_close();
ddmenuitem = $(this).find('ul').eq(0).css('visibility', 'visible');}
function jsddm_close()
{ if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}
function jsddm_timer()
{ closetimer = window.setTimeout(jsddm_close, timeout);}
function jsddm_canceltimer()
{ if(closetimer)
{ window.clearTimeout(closetimer);
closetimer = null;}}
(function($) {
$(document).ready(function() {
$('#menu-main-nav > li').bind('mouseover', jsddm_open);
$('#menu-main-nav > li').bind('mouseout', jsddm_timer);
});
document.onclick = jsddm_close;
}) (jQuery);
</script>
왜 그 익명 함수로 자바 스크립트의 모든 포장하지? 그렇게하면'$'**를 통해'jQuery'에 대한 참조가 보장됩니다 ** 당신은 전역 객체를 clobber하지 않습니다. – jAndy
파이어 버그에서 무엇을보고 있습니까? 같은 오류입니까? – Jakub
js 코드에 jQuery가 붙어있는 문제가 있습니다. 'document.onclick = jsddm_close;'를'$ (document) .click (function() {jsddm_close (this);});로 변경하고'jsddm_close'에서'this'를 인수로받습니다. –