19-01-2011, 15:56
|
|
|
חבר מתאריך: 06.06.07
הודעות: 749
|
|
טוב אז כמו שאמרתי
האתר הזה נבנה לפי דרישות הלקוח שהכל יכנס בפיידים ולא בהחזרת דף חדש
אז בניתי את המערכת כולה ב AJAX
זה האתר
www.min-add.com
עכשיו פתאום הם רוצים אופציה לשייך לינק לדף מסויים במערכת
AJAX לא זוכר את הדברים האלו אז הכנסתי סיפריה שנקראת JHISTORY
שמורה זה לזכור את הצעדים שהיוזר מבצע כדי לבצע את אותו התהליך זמן של רענון
או אפילו אם אני שוח לך את הלינק זה מביא אותך לעמוד הנכון
או יותר נכון זה מציג לך את התוכן הנכון..
עד פה אני מאמין שהכל ברור
הכל רץ לי כמו שצריך עכשיו הבעיה שלי היא שכל פעם שהתפריט חוזר הוא מקבל את ה CSS הראשי
עכשיו ניסיתי כת מיני שיטות
זאת הפונקציה הראשית של הJHISTORY היא בצורה אוטומטית מקבלת את URL ששם נשמר הצעדים של היוזר
ומתחילה לפרק אותם ולבצע אותם אחד אחרי השני
בלופ האחרון אני מנסה לתת צבע חדש לכל מי שנלחץ
קוד PHP:
$.history.init(function(url) {
//alert(url);
if(url != '')
{
var ajaxAction1 = url.split('*S*');
//alert(ajaxAction1.length);
var ajaxAction = null;
var i = 0;
var flag = false;
var selected = new Array();
var select_id = null;
var link = '';
for(i = 0; i < ajaxAction1.length; i++)
{
//alert(i);
link = '';
ajaxAction = ajaxAction1[i].split('@');
select_id = ajaxAction[1].split('/');
selected[i] = select_id[2];
if(i+1 == ajaxAction1.length)
{
flag = true;
}
else
{
flag = false;
}
//alert(flag);
link = ajaxAction[1];
doAjax(ajaxAction[0],link, flag);
}
var j = 0;
var num = 0;
//alert(selected.length);
for(j= 0; j < selected.length; j++)
{
num = j+1;
$('#m'+(num)+'_'+selected[j]).css('color', '#00b5cc');
}
}
});
זה היה ניסיון ראשון
אחר כך ניסיתי לעשות את זה על ידי הסיישן
יש לי3 פונקציות
לחיצה על תפריט 1 קוראת לפונקציה ראשונה
לחיצה על תפריט 2 קוראת לפונקציה שניה
ולחיצה על תפריט 3 קוראת לפונקציה שלישית
כשאני לוחץ על פונציה 1
אני צריך להחזיר את התפריט השניה
אני מעביר את הלחיצה על התפריט הני לקוד ובודק האם ה ID שווה אם כן אני מכניס ל CLASS אם ה CLASS עם הצבע
דוגמה
קוד PHP:
echo '<div id="m2_'.$m['id'].'" class="menu_2_text '.($this->session->userdata('selectedM2') == $m['id'] ? 'menu_Selected' : '').'" dir="'.$dir.'" style="margin-left:'.$margin.'px;">';
echo '<input type="hidden" name="page_id" value="'.$m['id'].'" />';
echo $m['text_'.$language];
echo '</div>';
הבעיה פה זה שזה עובד אבל עם באג יש לזה עיכוב של לחיצה, הכוונה היא שאם לחצתי על התפריט השני כלום לא קורה אבל אם אני לוחץ על לינק אחר בתפריט השני פתאום אני רואה את לחיצה הראשונה
וכך הלאה
|