اختبار الكود:
نسخة الكود كما يلي:
<div id = "test"> <p> نص اختبار <p> </viv>
<script src = "البائع/jQuery -2.1.1.js"> </script>
<script>
Test.AdDeventListener ("Click" ، Function (E) {console.log (e) ؛} ، false) ،
$ ('#test'). on ('click' ، function (e) {console.log (e)}) ؛
</script>
تحليل النتائج:
نسخة الكود كما يلي:
JS-JQ-AVENT-COMMON: {
Altkey: خطأ ،
الفقاعات: صحيح ،
الزر: 0 ،
قابل للإلغاء: صحيح ،
ClientX: 58 ،
العميل: 13 ،
Ctrlkey: خطأ ،
إزاحة: 50 ،
النسل: 5 ،
Pagex: 58 ،
Pagey: 13 ،
ScreenX: 58 ،
الشاشة: 122 ،
عرض: نافذة ،
الذي: 1 ،
اكتب: "انقر" ،
الطابع الزمني: 1407761742842 ،
ميتيكي: خطأ ،
RelationTarget: NULL ،
الهدف: Div#test /*jq-evt هدف ليس بالضرورة عنصرًا يطابق محدد jQuery ، قد يكون العنصر الأول الذي يلتقط الحدث ، ثم يتقاطع مع أحدهم هو العنصر الذي يطابق المحدد* /
} ،
JS-JQ-AVENT-DIFF: {
CurrentTarget: null/*يبدو أنه عادة ما يكون فارغًا*/
|| يطابق محدد Div#Test/*JQ العناصر في السمة [CurrentTarget]*/،
eventphase: 0 || 2 ،
ToElement: Div#اختبار
} ،
JS-Event-Solo: {
X: 58 ،
Y: 13 ،
CancelBble: خطأ ،
charcode: 0 ،
الحافظة: غير محددة ،
datatransfer: NULL ،
DefaultPrevented: خطأ ،
srcelement: Div#Test ،
Fromelement: NULL ،
التفاصيل: 1 ،
رمز المفاتيح: 0 ،
Layerx: 58 ،
الطبقات: 13 ،
ReturnValue: صحيح
} ،
jq-event-solo: {
الأزرار: غير محددة ،
البيانات: غير محددة ،
Depatetarget: Div#test/*من يستمع؟ هذا هو العنصر. */،
isDefaultPrevented: وظيفة ،
مقبض: كائن ،
jQuery211024030584539286792: TRUE ،
Originalevent: mouseevent ،
ShiftKey: خطأ
}
تنقر فوق الجسم-حدث: {
CurrentTarget: htmlbodyelement ،
Devatetarget: htmlbodyElement ،
الهدف: htmldivelement
}
تلخيص:
في معلمة الحدث لـ JS ، سواء كانت الهدف ، و toelement ، و srclement ، فإنها تشير إلى العنصر الأول الذي يؤدي إلى حدوث الحدث (وليس الفقاعات حتى الآن) ، والفروم من النقر في حدث النقر. لذلك ، إذا قمت بتعيين الحدث الأصل مع الكثير من العناصر ، فمن المحتمل أن يكون الحدث المشغل هو العنصر الفردي لهذا الوالد.
لذلك ، في التطبيق الفعلي ، إذا كنت ترغب في الرجوع إلى الوالد ، يمكنك فقط استخدام هذا
في معلمة الحدث من JQ ،
CurrentTarget هو العنصر الذي يطابق محددك ، وهو العنصر الذي تريده ؛
DeLegateTarget هو عنصر يستمع للأحداث وينتمي إلى العنصر المفوض.
الهدف في معلمة الحدث لنفس JS هو العنصر الأول الذي يؤدي إلى الحدث ، وهو ليس مفيدًا مثل CurrentTarget (ليس بالضرورة ، على سبيل المثال ، التطبيق في حدث Bodyclick)
قد يقول بعض الطلاب أنك بحاجة إلى الرجوع مباشرة إلى عناصر حدث الجهاز واستخدام هذا. لماذا تفهم CurrentTarget والهدف؟ تثبت هذه الفكرة أنك تستخدم JQuery فقط ولم تستخدم أدوات مثل العمود الفقري.
العمود الفقري يربط هذا في العديد من الأماكن ، لذلك لا يمكن استخدام هذا في وظائفه:
نسخة الكود كما يلي:
var view = backbone.view.extend ({
EL: document.body ،
الأحداث: {
"انقر فوق P": "showtext"
showtext: function (e) {
var p = e.currentTarget ؛ // [CurrentTarget] احصل على العنصر الذي يطابق المحدد this.log (p.innerhtml) ؛ // رأيته ، هذا لا يشير إلى عنصر p} ،
السجل: وظيفة (msg) {
console.log (msg) ؛
}
}) ؛
على الرغم من أن كائنات الحدث في JS و JQ متشابهة ، لا يزال هناك بعض الاختلافات. هل تفهم؟