this 사이트의 jQuery 아코디언이 있는데 내 용도로 편집되었지만 아코디언은 Firefox에서만 작동하며 (Safari 또는 Chrome이 아님) 쿠키가 올바르게 설정되지 않았습니다. jQuery 아코디언 및 쿠키 관련 문제
이
은 jQuery를하다 : function initMenus() {
$('#sidebar .letter_index').hide();
$.each($('#sidebar .letter_index'), function() {
var cookie = $.cookie(this.id);
if (cookie === null || String(cookie).length < 1) {
$('#sidebar .letter_index:first').show();
} else {
$('#' + this.id + ' .' + cookie).next().show();
}
});
$('#sidebar .letter_head').click(function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if ((checkElement.is('.letter_index')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' .letter_index:visible').slideUp('normal');
if ((String(parent).length > 0) && (String(this.className).length > 0)) {
// not working
$.cookie(parent, this.className);
}
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initMenus();});
이 얼마나 내 HTML의 외모 (샘플 항목) : 나는 스크립트가 사파리에서 작동하지 않습니다 왜 문제를 찾을 수 없습니다
<div id="sidebar">
<h2 class="letter_head"><a href="#" class="ABC">ABC</h2>
<ul class="letter_index">
<li>Abc</li>
<li>Bcd</li>
</ul>
</div>
및 크롬.
쿠키 값으로 h2
안에 a
클래스를 사용하는 방법을 알려줄 수도 있습니다. (현재 쿠키는 container
(#sidebar 위의 div)이고 값이 letter_head
인 쿠키를 생성하는 $.cookie(parent, this.className);
으로 설정되어 있습니다. '사이드 바', 'ABC', 'DEF'등과 같은 형식이어야합니다 ..
감사합니다!
감사합니다. :) 쿠키가 완벽하게 작동하지만 아코디언은 여전히 Chrome, Opera 또는 Safari에서 작동하지 않습니다. 편집 : 나는 단지 바이올린이 작동하지만, 스크립트가 아니라 것으로 나타났습니다. 문제는 메뉴를 생성하는 PHP의 어딘가에 있어야합니다. 그래서 그것에 대해보고 있습니다 :) – rayne
늦게 답장을 드려 죄송합니다. 쿠키를 특정 경로로 설정했기 때문에/en/about/등의 URL 재 작성을 내 사이트에 포함 시켰으며 메뉴가 더 이상 작동하지 않습니다. 경로를 고려하지 않고 쿠키를 설정하면 메뉴가 전체 사이트에서 다시 작동 할 수 있습니까? – rayne
안녕하세요 레이네! 이 줄을'$ .cookie (sidebar.attr ('id'), headClassName);''$ .cookie (sidebar.attr ('id'), headClassName, {path : '/'}) – Mottie