PDA

View Full Version : چندین بار کلیک در Java Script



amir868
چهارشنبه 16 مرداد 1392, 01:46 صبح
سلام...!
ببخشید میخواستم کد ی بنویسم که با هر بار کلیک بر روی یک تگ DIV یه بکگراند جدید برای Body به وجود بیاد.
برای یک بار کلیک کردن آسونه اما نمیدونستم چطور تعیین کنم که با دومین کلیک و کلیک های بعدی بکگراند باز هم تغییر کنه!
ممنون میشم کمک کنید.
با تشکر

mehdi.mousavi
چهارشنبه 16 مرداد 1392, 02:07 صبح
سلام...!
ببخشید میخواستم کد ی بنویسم که با هر بار کلیک بر روی یک تگ DIV یه بکگراند جدید برای Body به وجود بیاد.
برای یک بار کلیک کردن آسونه اما نمیدونستم چطور تعیین کنم که با دومین کلیک و کلیک های بعدی بکگراند باز هم تغییر کنه!
ممنون میشم کمک کنید.
با تشکر

سلام.


متغیری از نوع آرایه تعریف کنید و رنگ های مورد نظرتون رو در اون قرار بدید.
سپس index ای تعریف کنید و مقدار اولیه اونو 0 بذارید.
حالا با هر بار click، رنگ صفحه رو به رنگ array[index] در بیارید و سپس index رو یکی اضافه کنید.
اگر index بزرگتر از تعداد المنت های موجود در آرایه شد، index رو صفر کنید تا با click بعدی، مجددا اولین رنگ موجود در آرایه به صفحه apply بشه.

موفق باشید.

amir868
چهارشنبه 16 مرداد 1392, 14:17 عصر
var bg = new Array(3);
bg[0]="url(img/background2.jpg)";
bg[1]="url(img/1.jpg)";
bg[2]="img/page_bg_default2.png";
var i = 0;
function changebg(){
document.getElementById("body_id").style.background=bg[i];
i++;
if(i>=2){
return i=-1;
}
}

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

afshin9032
چهارشنبه 16 مرداد 1392, 16:27 عصر
باید مورد سوم هم توی url بزاری که نذاشتی :لبخندساده:
کد اصلاحی :

var bg = new Array(3);
bg[0]="url(img/background2.jpg)";
bg[1]="url(img/1.jpg)";
bg[2]="url(img/page_bg_default2.png)";
var i = 0;
function changebg(){
document.getElementById("body_id").style.background=bg[i];
i++;
if(i>=2){
return i=-1;
}
}

darkcms
چهارشنبه 16 مرداد 1392, 19:16 عصر
باید مورد سوم هم توی url بزاری که نذاشتی :لبخندساده:
کد اصلاحی :

var bg = new Array(3);
bg[0]="url(img/background2.jpg)";
bg[1]="url(img/1.jpg)";
bg[2]="url(img/page_bg_default2.png)";
var i = 0;
function changebg(){
document.getElementById("body_id").style.background=bg[i];
i++;
if(i>=2){
return i=-1;
}
}
با سلام و درود.
نیازی نیست درون شرط return بگذارید!
کد اصلاح شده ی شما:

var bg = new Array(3);
bg[0]="url(img/background2.jpg)";
bg[1]="url(img/1.jpg)";
bg[2]="url(img/page_bg_default2.png)";
var i = 0;
function changebg(){
document.getElementById("body_id").style.backgroun d=bg[i];
i++;
if(i >= 2){
i = -1;
}
}
به امید فردایی بهتر!:لبخندساده:

mehdi.mousavi
چهارشنبه 16 مرداد 1392, 19:39 عصر
سلام.
من راستش متوجه نمیشم چرا index رو برابر -1 میذارید! دسترسی به عنصر -1 ام آرایه که بی معناست...
کد رو بدین شکل باید تغییر بدید:


var bg = ['url(img/background2.jpg)', 'url(img/1.jpg)', 'url(img/page_bg_default2.png)'], i = 0;
function changebg() {
document.getElementById("body_id").style.background = bg[i++];
if(i >= bg.length) {
i = 0;
}
}


بدین ترتیب دیگه نیازی نیست با کم و زیاد کردن تصاویر در آرایه، هر بار بصورت دستی تعداد رو نیز در کد تعیین کنید.

موفق باشید.