PDA

View Full Version : چرا رویداد keypress عمل نمی کنه؟



white tower
جمعه 18 مرداد 1392, 10:22 صبح
سلام
این قطعه کد


function c(event){
event.target.focus();
}


<span onclick="c(event)" onkeypress="alert('HELLO!');"></span> یه بار که روی span کلیک میشه طبق روال باید فوکوس روی span باشه.و بعد از کلیک اگر یه کلید کیبورد زده بشه باید پیام نشون داده بشه.
ولی نمیشه:گریه:
مشکل کجاست؟
یه سوال هم دارم اینکه چطوری بررسی کنم که فوکوس روی یه المان هست یا نه؟

jalil_gh
یک شنبه 20 مرداد 1392, 13:15 عصر
شما میتونید متد ()focus رو برای همه المان‌ها فراخوانی کنید ولی همه المان‌ها فوکوس رو دریافت نمیکنن. span فوکوس رو دریافت نمیکنه برای همین رویداد keypress برای اون فراخوانی نمیشه.
برای اینکه بدونید کدوم المان فوکوس رو دریافت کرده میتونید از document.activeElement (https://developer.mozilla.org/en-US/docs/Web/API/document.activeElement) اسفاده کنید.

mehdi.mousavi
دوشنبه 21 مرداد 1392, 18:35 عصر
سلام یه بار که روی span کلیک میشه طبق روال باید فوکوس روی span باشه.و بعد از کلیک اگر یه کلید کیبورد زده بشه باید پیام نشون داده بشه.

سلام.
برای اینکه span بتونه focus رو بگیره، باید خصیصه tabIndex رو روی اون span ست کنید. (لطفا این کد HTML (http://jsfiddle.net/BVjy9/) رو ببینید).
برای اینکه با مقادیر tabIndex و کارایی هر یک آشنا بشید، لطفا این مقاله (http://snook.ca/archives/accessibility_and_usability/elements_focusable_with_tabindex) رو مطالعه کنید.

در نهایت ترکیب کدهای JavaScript و HTML به شکلی که شما انجام داده اید کار صحیحی نیست. برای اطلاعات بیشتر
عبارت Unobtrusive JavaScript رو در Google جستجو کنید.

موفق باشید.