واجهت اليوم طلبًا غريبًا للغاية ، وهو مثل هذا: عندما أنقر على النص ، يظهر زر الحذف لحذف النص الذي نقرت عليه للتو.
يا؟ فكرت في ذلك في ذلك الوقت ، لم يكن الأمر صعبًا. ولكن نظرًا لأنه كان طلبًا غريبًا ، كيف يمكن أن يكون الأمر بسيطًا جدًا؟
نعم ، هناك وظيفة أخرى. لا أعرف العلامة التي قمت بالنقر عليها. هناك الكثير من العلامات التي يمكن أن تحمل النص باللغة الإنجليزية ...
في ذلك الوقت ، كنت في حيرة من أمري. لم تكن تعرف أي علامة للنقر ، كيف يمكنني ربط الحدث؟ لمن ربطت الحدث؟ لا يزال يتعين علي كتابته بعد التحدث لفترة طويلة. لذلك بدأت العمل.
فكرتي مثل هذا:
يبدأ
1. أولاً ، عليك الحصول على الكائن الذي تم النقر عليه بواسطة الماوس. (السؤال هو ... كيف أعرف أي واحد نقرت عليه)
ثم اكتب وظيفة للحصول على الكائن الذي تم النقر عليه بواسطة الماوس
ترتبط وظيفة get_tag بحدث onclick في الجسم ، ثم يتم قبول معلمة الحدث ؛
ثم يحتوي كائن الحدث على سمة هدف ، وهو كائن يمكنه الحصول مباشرة على نقرة الماوس.
دعنا نسجل الدخول لنرى
حسنًا ، لا بأس. إنها تتفق مع الفكرة السابقة والحصول على النتيجة المرجوة.
2. احصل على الكائن. ولكن كيف تحذفه؟
var del_tag = function () {var tag = null ؛ إرجاع {get: function (e) {tag = e ؛ } ، del: function () {$ (tag) .remove () ؛ }}}نظرًا لأن زر الحذف لا علاقة له بالكائن الذي نقره عليه ، يتعين علينا كتابة إغلاق وإعلان علامة لحفظ الكائن الذي نقرناه عليه.
ثم إرجاع وظيفتين ، واحد الحصول على. تستخدم للحصول على الكائن الذي نقره الماوس في المرة الأخيرة. واحد ديل. كما يوحي الاسم ، احذف الكائن الذي تم النقر عليه.
نظرًا لأنه إغلاق ، سيتم حفظ العلامة في الذاكرة ، فقط لتحقيق الوظيفة المطلوبة.
3. مزيج من الاثنين
var del_tag = function () {var tag = null ؛ إرجاع {get: function (e) {tag = e ؛ } ، del: function () {$ (tag) .remove () ؛ }}} var dt = del_tag () ؛ // issign del_tag to dt function get_tag (e) {var eLe = e.target ؛ // call dt.get () المعلمة هي قيمة معلمة حدث get_tag dt.get ($ (eLE)) ؛ } $ ('#del'). انقر فوق (function () {// هنا ، لأنه يتم إنشاء الإغلاق ، تم حفظ الكائن الذي نقرناه في المرة الأخيرة. // حتى تتمكن من الاتصال مباشرة dt.del () هنا حذف الكائن dt.del () ؛})4. تحقق من التأثير
5. التأثير جيد جدا. ولكن ... يمكنك حذفه بالنقر على كائن معين. هل هذه فوضى؟ ثم تغييره
var del_tag = function () {var tag = null ؛ إرجاع {get: function (e) {tag = e ؛ } ، del: function () {$ (tag) .remove () ؛ }}} var dt = del_tag () ؛ // issign del_tag to dt function get_tag (e) {var eLe = e.target ؛ $ (eLe) .css ('Border' ، '1px Solid Red') var tagname = ele.tagname ؛ // تحديد مجموعة العلامات. تستخدم لتخزين الكائن الذي نريد حذف var tagarr = ['span' ، 'H1' ، 'H2' ، 'H3' ، 'H4' ، 'H5' ، 'H6' ، 'P'] ؛ // تحكم على ما إذا كان الكائن الذي نقره يُعلن في صفيفنا ، يمكننا حذفه. if (tagarr.indexof (tagName)> -1) {// call dt.get () المعلمة هي قيمة معلمة حدث get_tag dt.get ($ (eLe)) ؛ }} $ ('#del'). انقر فوق (function () {// هنا ، لأنه يتم إنشاء الإغلاق ، تم حفظ الكائن الذي نقرناه في المرة الأخيرة. // حتى تتمكن من الاتصال dt.del () هنا لحذف الكائن dt.del () ؛})تحقق من التأثير:
نعم. يبدو صحيحا. لا يمكن حذفه إذا لم يكن الكائن الذي نحدده.
على الرغم من أنه يختلف بعض الشيء عن النص المحذوف المذكور في المتطلبات. ولكن طالما أخبرتني أنك ستستخدم تلك الملصقات لاستضافة النص ، يمكنني حذفه ...
اسمحوا لي أن أؤكد أنه لا يمكن وضع وظيفة get_tag () على الجسم أو حدث HTML OnClick. خلاف ذلك ، سيتم حذف نص الصفحة بأكملها على الإطلاق ...
وظيفة get_tag () مرتبطة بـ div التي تريد حذف النص.
يتم النقر فوق المقالة أعلاه على الكائن الذي تم النقر عليه بواسطة الماوس وينقر زر آخر لحذف رمز التنفيذ للكائن هو كل المحتوى الذي شاركته معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.