PDA

View Full Version : سوال: نحوه فوکوس روس یک لینک



pedram_ns
یک شنبه 19 دی 1389, 11:39 صبح
با سلام
من بوسیله jquery یک سری تب ایجاد کردم و در وسط صفحه گذاشتم با کدهای زیر با کلیک روی هر لینک (jobdirectoy و infodirectoy) هر یک از div های مربوطه (info-directory و job-direcoty) فعال می شه و دیگری مخفی.

مشکل اینه که با کلیک روی هر کدوم صفحه به بالا می ره چه کدی به کدهای زیر باید اضافه کرد که مثلا روی لینک jobdirectory فوکوس انجام بشه و صفحه دیگه به بالا نره؟



$(document).ready(function(){
$("#inf-odirectory").show();
$("#job-directory").hide();

$("#infodirectory").click(function () {
$("#info-directory").show();
$("#job-directory").hide();
});
$("#jobdirectory").click(function (){
$("#info-directory").hide();
$("#job-directory").show();
});

});


دوستان من با jqury کار کردم و حجم فایل رو به 10 کیلو رسوندم اگر کسی کد ایجاد تب داره که با همین حجم کار کنه لطفا معرفی کنه.

ممنون.

mehrdad201
یک شنبه 19 دی 1389, 12:11 عصر
شما باید از prevent default استفاده کنی به این صورت


$("#infodirectory").click(function (e) {
e.preventDefault();
$("#info-directory").show();
$("#job-directory").hide();
});

pedram_ns
یک شنبه 19 دی 1389, 14:34 عصر
آقا مهرداد خیلی ممنون در مورد این دستور prevent default یک توضیحی می فرمایید؟

در ضمن من الان تست کردم در ie اضافه کردن این کد کل کار تب رو از کار می ندازه و دیگه کار نمی کنه برای این راهی ندارید؟

mehrdad201
یک شنبه 19 دی 1389, 15:26 عصر
این دوستور جلوی اکشن دیفالت اون تگ رو میگیره. مثلا در اینجا که شما تو عملیات کلیک فراخوانیش کردی. شی e از نوع event رویداد کلیک هست. وقتی preventDefault میکنیم دیگه نمیذاریم کلیک بشه.

اینطوری دیگه شما با اون مشکل # در لینک ها که صفحه رو میبره بالا مواجه نمیشی. یا اگه لینکت به صفحه خاصی اشاره داره از کار میفته. ولی کدهایی که تو اون تابع نوشتید کارشون رو انجام میدن. منظورم show و hide در خط های بعدی است.

pedram_ns
یک شنبه 19 دی 1389, 16:21 عصر
می شه با ie یک چک بکنید ببنید چرا توی اون کار نمی کنه؟
این دستور جدید رو که اضافه می کنم دیگه تب ها رو عوض نمی کنه ولی در فایرفاکس و بقیه درسته!

pedram_ns
یک شنبه 19 دی 1389, 17:32 عصر
خوب کد رو به این صورت تغییر دادم و در ie8 درست کار می کنه خوشحال می شم نظرتون رو بدونم یا در ورژن های دیگه ie بتونید تست کنید؟


if(e.preventDefault)
e.preventDefault();
else
e.returnValue = false;

mehrdad201
یک شنبه 19 دی 1389, 17:33 عصر
دستوارت jquery در همه بروزرها کار میکنند. اگه مشکلی هست احتمالا به نوع کدنویسی شما برمیگردد.