رفتن به مطلب

اجرای تابع بر مبنای ID یا Class


پست های پیشنهاد شده

سلام.

یه سری دکمه ها هستن هیچ تابع یا دستور خاصی مثله onclick (در ظاهر) ندارن و دستورشون رو بر مبنای کلاس یا ایدی یه تگ انجام میدن.

توابعشونم معمولن به این صورته

$("a","#"+options.nextId).click(function(){
animate("next",true);
});

حالا اگه من بخوام این دستور رو به یه دکمه ی دیگه بدم باید چیکار کنم. می دونم یه مقدار گنگه واسه همین یه مثال آپلود کردم.

تو این مثال با کلیک بر روی دکمه ی سمت راست تصاویر گروه بعدی و با کلیک بر روی دکمه ی سمت چپ تصاویر گروه قبلی رو نمایش میده.

حالا اگه من بخوام یه متن (مثلن بعدی) تو پایین صفحه داشته باشم که با کلیک بر روی اون تصاویر گروه بعدی نمایش داده بشه چیکار باید بکنم؟

یه سوال دیگه: آیا دستوری هست که عملیات کلیک روی یه شی رو انجام بده. انگار که روی مثلن اون دکمه کلیک شده.

sample.rar

لینک به ارسال

index و css این نمونه ای که قرار دادی ویرایش کردم

والان به جای عکس کلمه / بعدی و قبلی / جایگزین شده

البته اگه درست متوجه شده باشم !

+.rar

لینک به ارسال

نه متاسفانه. منظور من این نبود. من در واقع می خواستم یه آشنایی در موارد این چنینی داشته باشم، مثلا چه جوری دستوری که باعث میشه تصاویر به سمت راست اسکرول شن رو به یه آبجکت دیگه داد. مثلا در حالی که تصاویر قبلی با همون کلاس موجودن اون پایین صفحه هم یه لینک باشه که همون کارو انجام بده، نه اینکه تصویر رو حذف کنم و به جاش قبلی و بعدی رو بنویسم.

مثلن در همین مثال چه جوری میشه تعیین کرد که تصاویر موجود به صورت خودکار مثلن بعد از 10 ثانیه اسکرول شن؟

لینک به ارسال

خب برای این کار بهتره از کلاس استفاده کنید شما میتونین به یک المان بیش از 1 کلاس بدین

برای انجام کارهایی مشابه این میتونین یک کلاس ثابت برای این کار تعریف کنید مثلا next حالا

شما برای دکمتون یک استایل تعریف کردین مثلا کلاس btn و برای لینکتون هم یک کلاس به نام

lnk خب حالا برای قرار دادن این کلاسها کنار هم ابتدا نام کلاسی که حالت اجرایی داره مثلا در

jquery ازش استفاده شده و سپس کلاس استایل


<a href="#" class="next lnk">link</a>

لینک به ارسال

ممنون. خوب اینم روشیه. اما سوال من این بود که چه جوری میشه این دستور را در بخشهای دیگه استفاده کرد.

مثلن تو همین مثال می خوام به محض لود شدن صفحه تصاویر یک بار اسکرول شن (انگار که روی دکمه next کلیک شده)

خوب باید تو body داشته باشم

onload="نام دستور"

الان واسه انجام این کار چه راه کاری هست؟

لینک به ارسال

چیزی که شما مطرح کردید رو بهش می گن سلکتورهای jquery

برای onload در جی کوئری بجای نوشتن دستور لود در تگ بادی کد را به صورت زیر می نویسند


$(document).ready(function () {
کد اسکرول
});

لینک به ارسال

خوب من که کد اسکرول رو نمی دونم چیه؟ یعنی نمی تونم تو فایلای موجود پیداش کنم. من فقط می دونم با دادن کلاس next به یه آیتم دستور اسکرول به صمت راست انجام میشه!

لینک به ارسال

شما در کدهای صفحخ index.html


<script type="text/javascript">
$("#slider").easySlider({
prevText:'',
nextText:'',
vertical:true
});
</script>

را به


<script type="text/javascript">
$("#slider").easySlider({
prevText:'',
nextText:'',
vertical:true,
auto: true
});
</script>

و در کدهای easySlider1.7.js


if(options.auto && dir=="next" && !clicked){;
timeout = setTimeout(function(){
animate("next",true);
},diff*options.speed+options.pause);
};

};

};
// init
var timeout;
if(options.auto){;
timeout = setTimeout(function(){
animate("next",true);
},options.pause);
};

را به


if(options.auto && dir=="next" && !clicked){
timeout = setTimeout(function(){
animate("next",true);
},diff*options.speed+options.pause);
};

};

};
// init
var timeout;
if(options.auto){
timeout = setTimeout(function(){
animate("next",true);
},options.pause);
};

تبدیل کن و تست بگیر

لینک به ارسال

متاسفانه انجام نشد. کدهای easySlider1.7.js رو هم که نوشتید هر دو مشابهن. البته من اون بخش رو پیدا و مقادیر false را در بخشهای مربوطه true کردم.

ببینید چیزی که من می خوام زیاد پیچیده نیست من فقط می خوام دستورهایی که بر مبنای کلاس انجام میشن رو بتونم در بخشهایی که امکان قرار دادن کلاس به شکل عادی رو نداره انجام بدم. (تو همین مثال کلاس next رو به هر آیتمی بدید عملیات اسکرول به گروه بعدی رو انجام میده)

حالا من اگه بخوام هر 10 ثانیه یکبار خودش به سمت راست اسکرول شه چه جوری باید این دستور رو بدم.

لینک به ارسال

نه کدها بجز false و true یک فرق دیگه هم دارند بعد از } علامت ; در کدهای اول هست که اجازه اجرای دستور را نمی ده و در دومی حذف شده


if(options.auto && dir=="next" && !clicked){;

و اینجا


if(options.auto){;

لینک به ارسال

هر ده ثانیه یک بار یعنی اتو اسکرول

فایل js که گفته شد را باز کنید


prevId: 'prevBtn',
prevText: 'Previous',
nextId: 'nextBtn',
nextText: 'Next',
controlsShow: true,
controlsBefore: '',
controlsAfter: '',
controlsFade: true,
firstId: 'firstBtn',
firstText: 'First',
firstShow: false,
lastId: 'lastBtn',
lastText: 'Last',
lastShow: false,
vertical: false,
speed: 800,
auto: false,
pause: 2000,
continuous: false,
numeric: false,
numericId: 'controls

اینها کدهای تنظیماتتون هستند برای اجرای next باید آی دی شی nextBtn باشه و ....

pause مقدار زمان ایسته که در حال حاضر دو ثانیه است و ده هزارش می شه ده ثانیه

speed سرعت اجراست و این هم بر حسب هزارم ثانیه است و مقدار auto هم باید برابر true باتشه این تنظیمات را شما می توانید از داخل فایل هم عین موارد مشابه در index.html انجام دهید

البته کتابخانه جی کوئریش قدیمیه و احتمال تداخل کدهاش با کدهای قالب خیلی زیاده و بعید می دونم قابل استفاده براتون باشه

و تستش هم باید روی هاست انجام شه که مفسر php فعال باشه و بتونه کوکی بسازه و کوکی رو بخونه

لینک به ارسال

من که عرض کردم ورژن کتابخانه جی کوئریش منسوخ شده است و باید در محل تست کنید اگر جواب نمی ده مشکل از جی کوئریست و کاریش نمی شه کرد مگر اسکرولی با کتابخانه های 1.7 تا 1.10 بیابید

لینک به ارسال

اما دکمه های next و previous هر دو جواب میده. هم رو سیستم و هم رو سرور. یعنی واقعن تابع یا فرمانی نیست که دستور کلیک رو یک شی رو (بر مبنای id) انجام بده؟؟؟!!!!

لینک به ارسال

اون دگمه ها با تایم اوت کار نمی کنند و دستور را مستقیم اجرا می کنند

یک تست هم بکنید پیوندی که به جی کوئری نسخه 1.3 دارید را از کدها حذف کنید و بجاش


<script src="http://code.jquery.com/jquery-latest.js"></script>

اضافه کنید شاید درست شد

یعنی چی که دستور کلیک روی یک شی را با فرمان آی دی انجام یده

من متوجه نمی شم

شما می خواهید یک عکس به جلو بروید یا می خواهید اتو ران بشود؟ یک عکس به جلو رفتن که کاری را پیش نمی برد برای اتو ران باید تابع تایم اوت فعال شود که راهش عرض شد

لینک به ارسال

کاری که عرض شد تنها راهه استفاده از این افزونه است در غیر اینصورتا باید کلا کد نویسی بشود

به سایت

http://www.htmldrive.net/categorys/show/2/Slideshow-Scroller

بروید و از صدها اسلایدر سالمش یکی را انتخاب کنید

لینک به ارسال

ممنون از تمام دوستانی که سعی در رفع مشکل داشتند. خودم پیدا کردم.

الگوریتمش رو می دونستم اما کدش رو نه، هر چی هم گفتم کسی متوجه نشد (به قول آقام میگه از بس مِن مِن می کنی) که بالاخره موفق شدم پیداش کنم.

ایجاد تایمر برای انجام متناوب دستور:

    window.onload = function () {
window.setInterval(goNext, 10000);
};

رخداد کلیک (خودکار) بر روی دکمه ی بعدی (Next)

    function goNext() {
document.getElementById("nextBtn").click();
}

پایان.

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...