0
jQuery n00b의 비트가 너무 작아서 바보 같은 질문 인 것처럼 여겨주세요. jQuery UI (특히 정렬 가능한 포틀릿)를 사용하여 사이트를 만들고 있습니다. 포틀릿이 열려 있거나 쿠키에 닫혀 있는지 여부를 저장할 수있었습니다. 이것은 다음 코드를 사용하여 수행됩니다. 슬라이더 ID는 현재 각 포틀릿을 켜고 끄기 위해 컨트롤이 저장되는 곳입니다.jQuery UI 포틀릿 - 포틀릿을 쿠키로 저장하도록 토글합니다. (중간에!)
var cookie = $.cookie("hidden");
var hidden = cookie ? cookie.split("|").getUnique() : [];
var cookieExpires = 7; // cookie expires in 7 days, or set this as a date object to specify a date
// Remember content that was hidden
$.each(hidden, function(){
var pid = this; //parseInt(this,10);
$('#' + pid).hide();
$("#slider div[name='" + pid + "']").addClass('add');
})
// Add Click functionality
$("#slider div").click(function(){
$(this).toggleClass('add');
var el = $("div#" + $(this).attr('name'));
el.toggle();
updateCookie(el);
});
$('a.toggle').click(function(){
$(this).parents(".portlet").hide();
// *** Below line just needs to select the correct 'id' and insert as selector i.e ('#slider div#block-1') and then update cookie! ***
$('#slider div').addClass('add');
});
// Update the Cookie
function updateCookie(el){
var indx = el.attr('id');
var tmp = hidden.getUnique();
if (el.is(':hidden')) {
// add index of widget to hidden list
tmp.push(indx);
} else {
// remove element id from the list
tmp.splice(tmp.indexOf(indx) , 1);
}
hidden = tmp.getUnique();
$.cookie("hidden", hidden.join('|'), { expires: cookieExpires });
}
})
// Return a unique array.
Array.prototype.getUnique = function() {
var o = new Object();
var i, e;
for (i = 0; e = this[i]; i++) {o[e] = 1};
var a = new Array();
for (e in o) {a.push (e)};
return a;
}
나는 또한이 [X] 각 포틀릿의 구석으로 사용자에게 그것을 숨기는 다른 방법을 제공하기 위해 추가하면된다 싶습니다하지만 난 현재이 사용 쿠키 내에 저장하는 얻을 수 없습니다 해요 무엇 위의 코드.
누구나 내가 어떻게 할 수있는 포인터를 줄 수 있습니까?
미리 감사드립니다.
가레스