ไม่ตรงกันแต่ละฟังก์ชั่น ()
หากคุณมีเอกสารที่ซับซ้อนจริงๆที่เรียกใช้ jQuery แต่ละฟังก์ชัน()จะล็อคเบราว์เซอร์ในระหว่างการทำซ้ำและ / หรือ Internet Explorer จะปรากฏข้อความ ' คุณต้องการเรียกใช้สคริปต์นี้ต่อไปหรือไม่ ' โซลูชันนี้จะบันทึกวัน
jQuery.forEach = function (in_array, in_pause_ms, in_callback)
{
if (!in_array.length) return; // make sure array was sent
var i = 0; // starting index
bgEach(); // call the function
function bgEach()
{
if (in_callback.call(in_array[i], i, in_array[i]) !== false)
{
i++; // move to next item
if (i < in_array.length) setTimeout(bgEach, in_pause_ms);
}
}
return in_array; // returns array
};
jQuery.fn.forEach = function (in_callback, in_optional_pause_ms)
{
if (!in_optional_pause_ms) in_optional_pause_ms = 10; // default
return jQuery.forEach(this, in_optional_pause_ms, in_callback); // run it
};
วิธีแรกที่คุณสามารถใช้มันก็เหมือนกัน ():
$('your_selector').forEach( function() {} );
พารามิเตอร์ 2 ตัวเลือกให้คุณสามารถระบุความเร็ว / ความล่าช้าในระหว่างการทำซ้ำซึ่งอาจจะเป็นประโยชน์สำหรับภาพเคลื่อนไหว ( ตัวอย่างต่อไปนี้จะรอ 1 วินาทีในระหว่างการทำซ้ำ ):
$('your_selector').forEach( function() {}, 1000 );
โปรดจำไว้ว่าเนื่องจากสิ่งนี้ทำงานแบบอะซิงโครนัสคุณไม่สามารถพึ่งพาการวนซ้ำเพื่อทำให้สมบูรณ์ก่อนหน้าบรรทัดถัดไปของโค้ดตัวอย่างเช่น
$('your_selector').forEach( function() {}, 500 );
// next lines of code will run before above code is complete
ฉันเขียนสิ่งนี้สำหรับโครงการภายในและในขณะที่ฉันมั่นใจว่าจะสามารถปรับปรุงได้มันทำงานได้ตามที่เราต้องการดังนั้นหวังว่าบางท่านจะเห็นว่ามีประโยชน์ ขอบคุณ -