عند استخدام الدالة .on()
في jQuery مع عناصر ديناميكية، يجب أن تتأكد من استخدام الوسيطة الصحيحة لتحديد العناصر. في حالتك، تقوم بربط الحدث click
بعناصر li
داخل ul
، ولكن العناصر الثالثة التي يتم إنشاؤها بواسطة كود jQuery آخر لا تعتبر جزءًا من العناصر المرتبطة بالحدث.
لحل هذه المشكلة، يمكنك استخدام الوسيطة الثابتة document
وتحديد العناصر داخلها. يمكنك تحديد العناصر التي تريد ربط الحدث بها باستخدام وسيطة ديناميكية، وهي الوسيطة التي تحتوي على العناصر الثابتة (الوجهات) والعناصر الديناميكية (الأصول).
اليك كيفية تعديل الكود ليعمل بشكل صحيح مع العناصر الديناميكية:
javascript$(document).on("click", "ul li", function() {
var bg = $(this).css('background-image');
alert(bg);
});
بهذا التعديل، سيتم ربط الحدث click
بجميع العناصر li
داخل ul
بما في ذلك العناصر الديناميكية التي تم إنشاؤها بواسطة السكربت الآخر.
المزيد من المعلومات
عند استخدام الدالة on()
في jQuery، يجب أن تكون العناصر المستهدفة موجودة في الوقت الذي تُربط فيه الحدث بها. إذا تم إنشاء العناصر ديناميكيًا بعد ربط الحدث بها، فإن الدالة on()
يجب استخدامها بطريقة تسمح بالتعامل مع العناصر الديناميكية.
باستخدام الوسيطة الثابتة document
كما هو موضح في الكود السابق، يتم الربط بين الحدث والعناصر داخل document
بدلاً من ربطها مباشرة بالعناصر. وبهذا، ستعمل الدالة on()
بشكل صحيح مع العناصر الديناميكية التي تم إنشاؤها بعد تحميل الصفحة.
يمكنك أيضًا استخدام $(document).ready()
للتأكد من تنفيذ الكود بعد تحميل الصفحة بالكامل، مما يضمن أن العناصر الديناميكية تكون متاحة قبل ربط الحدث بها.