دسته بندی
دسترسی سریع
رویدادها (Events) در جاوا اسکریپت (JavaScript)
معنی رویداد (Event) در جاوا اسکریپت
شیوه های به کار بردن (Handle) رویدادها در صفحات وب
استفاده از رویداد با Event Handler خطی (Inline)
استفاده از رویداد با Event Handler مستقل
استفاده از رویداد با addEventListener و removeEventListener
رویدادهای پرکاربرد جاوا اسکریپت در صفحات وب
مثال و پیش نمایش آنلاین
معنی رویداد (Event) در جاوا اسکریپت
شیوه های به کار بردن (Handle) رویدادها در صفحات وب
استفاده از رویداد با Event Handler خطی (Inline)
استفاده از رویداد با Event Handler مستقل
استفاده از رویداد با addEventListener و removeEventListener
رویدادهای پرکاربرد جاوا اسکریپت در صفحات وب
مثال و پیش نمایش آنلاین
رویدادها (Events) در جاوا اسکریپت (JavaScript)

از جمله ویژگی های ذاتی زبان برنامه نویسی جاوا اسکریپت (JavaScript) رویداد محور بودن آن است که امکان ایجاد قابلیت های تعاملی را در صفحات وب ممکن می کند، به طور مثال می توانیم تابعی تعریف کنیم که حاصل جمع نمرات آزمون های آنلاین را پس از کلیک کاربر (رویداد onclick) بر روی دکمه (button) در یک کادر نمایش دهد، یا به فرض زمانی که صفحه وب به صورت کامل بارگذاری شد (رویداد onload) مدت زمان باقیمانده تا رفرش بعدی را در خروجی چاپ کند، تعداد و نوع رویدادها در مفسر جاوا اسکریپت بسته به نیاز قابلیت های در نظر گرفته شده در صفحات وب بسیار متنوع است و چند شیوه مختلف برای به کار بردن (Handle) آنها وجود دارد، در ادامه این آموزش با معنی رویداد، انواع مختلف و نحوه استفاده از آنها در کدنویسی HTML و JavaScript به صورت مفصل آشنا خواهیم شد.
معنی رویداد (Event) در جاوا اسکریپت
به طور ساده رویداد (Event) در جاوا اسکریپت به معنی بروز یک اتفاق در صفحه وب (یا هر بستری که مفسر جاوا اسکریپت در آن اجرا می شود) است که می تواند عامل آن کاربر یا سیستم باشد، بعد از رخ دادن رویداد مفسر جاوا اسکریپت آن را شناسایی کرده و در صورتی که متناسب با آن Event کد خاصی نوشته شده باشد دستورات متناظر اجرا می شود، لذا همانطور که پیش تر در بحث توابع (Functions) دیدیم رویدادها در واقع حکم استارت را برای موتور توابع بازی می کنند و معمولا هر تابع متصل به یک یا چند رویداد است.
در مثال زیر نحوه فراخوانی تابع با رویداد onclick (زمانی که کاربر روی یک عنصر کلیک می کند) را بررسی می کنیم:
<script>
function setAlert(){
alert("این پیام با کلیک کاربر بر روی دکمه نمایش داده می شود");
}
</script>
<input type="button" name="button" value="کلیک" onclick="setAlert();">
زمانی که کاربر بر روی دکمه input کلیک می کند قسمت مربوط به onclick اجرا و تابع فرضی setAlert فراخوانی می شود، onclick یکی از رویدادهای پرکاربرد جاوا اسکریپت در صفحات وب است.شیوه های به کار بردن (Handle) رویدادها در صفحات وب
برای استفاده از رویدادها یا به اصطلاح Handle (به کار بردن) آنها در صفحات وب و نسبت دادن رویداد به یک عنصر در مجموع سه راه وجود دارد:
- استفاده از رویداد با Event Handler خطی (Inline) و ترکیب با کدنویسی HTML
- استفاده از رویداد با Event Handler مستقل و خارج از کدنویسی HTML
- استفاده از رویداد با addEventListener و removeEventListener
در ادامه آموزش به صورت موردی در خصوص هر کدام از این شیوه ها توضیح خواهیم داد.
استفاده از رویداد با Event Handler خطی (Inline)
ساده ترین شیوه به کاربردن رویداد در صفحات وب استفاده از آنها به صورت خطی (Inline) در ترکیب با تگ های HTML مانند input، div، button و... است، به طور مثال:
<script>
function showMessage(msg){
alert(msg);
}
</script>
<button type="button" onclick="showMessage('پیامی که با کلیک نمایش داده می شود');">Click</button>
با کلیک بر روی دکمه button رویداد خطی onclick اتفاق می افتد و تابع showMessage اجرا و در نهایت پیام زیر به صورت پنجره Alert نمایش داده خواهد شد:پیامی که با کلیک نمایش داده می شود
نکته 1: اختصاص رویداد به شیوه خطی به جهت ترکیب بخش اسکریپت نویسی با کدنویسی HTML از نظر دانش سئو (SEO یا بهینه سازی صفحات وب برای موتورهای جستجو) توصیه نمی شود، بهتر است این شیوه را صرفا به عنوان روشی به اصطلاح دم دستی مد نظر داشته باشیم و برای صفحاتی که از نظر سئو باید بهینه باشند از روش هایی که در ادامه بررسی خواهیم کرد استفاده کنیم (توصیه می شود بخش اسکریپت ها را از بخش HTML جدا کنیم).نکته 2: در اصطلاح برنامه نویسی به اتفاق افتادن رویداد Fire یا Trigger و به فراخوانی تابع Call می گویند.
استفاده از رویداد با Event Handler مستقل
روش دیگر به کار بردن رویداد استفاده از آن به صورت مستقل (در تگ script یا فایل JS) و خارج از کدنویسی HTML است، در این شیوه می توانیم به یک عنصر در صفحات وب یک یا چند رویداد مجزا با تنظیمات سفارشی نسبت دهیم، به طور مثال:
<button id="click-button" type="button">Click</button>
<script>
function showMessage(msg){
alert(msg);
}
var elm = document.getElementById('click-button');
elm.onclick = function(){
showMessage('پیامی که با کلیک نمایش داده می شود');
}
</script>
همان طور که مشخص است در این شیوه از به کار بردن رویدادها ابتدا باید عنصر مورد نظر در صفحه انتخاب شود (در اینجا متغیر elm با توجه به ID تعیین شده در متد getElementById دکمه button را انتخاب و تبدیل به آبجکت می کند)، سپس با نمونه Syntax زیر رویداد onclick را برای این آبجکت Handle می کنیم (یعنی با اجرای onclick در عنصر elm کدهای تنظیم شده در داخل کاراکترهای {} پردازش می شوند):elm.onclick = function(){}
عنصر مورد نظر در صفحات وب می تواند بسته به نیاز برنامه متفاوت باشد، به طور مثال آبجکت window یا آبجکت تگ های HTML، مثال:<script>
function showMessage(msg){
alert(msg);
}
window.onload = function (){
var elm = document.getElementById('click-button');
elm.onclick = function(){
showMessage('پیامی که با کلیک نمایش داده می شود');
}
}
</script>
<button id="click-button" type="button">Click</button>
در این نمونه کد ما رویداد onload را برای آبجکت window (پنجره جاری) تنظیم کرده ایم، در نمونه کد اول اگر تگ script را قبل از تگ button درج کنیم خطای زیر را دریافت خواهیم کرد (مشاهده خطاها با زدن کلید F12 در مرورگر، قسمت Console):Uncaught TypeError: elm is null
دلیل دریافت این خطا مشخص است، ما عنصری را در صفحه وب انتخاب کرده ایم که هنوز پردازش نشده است! کدنویسی صفحات وب به ترتیب از بالا به پائین پردازش می شود و مشخص است انتخاب تگی که هنوز در دسترس نیست برنامه را با خطا مواجه می کند، برای رفع این خطا می توانیم پردازش قسمتی از کدهای جاوا اسکریپت را به بعد از بارگذاری کامل صفحه موکول کنیم و این کار با اختصاص رویداد onload به آبجکت window (عنصر صفحه جاری) قابل انجام است، به این صورت حتی اگر کدها را قبل از تگ مورد نظر درج کنیم مشکلی به وجود نمی آید و بعد از بارگذاری کامل صفحه این قسمت از دستورات پردازش می شود.استفاده از رویداد با addEventListener و removeEventListener
در سال 2000 میلادی کنسرسیوم جهانی وب W3C شیوه دیگری برای اختصاص رویداد جاوا اسکریپتی به عناصر مختلف صفحات وب معرفی کرد که در حال حاضر به استانداردی فراگیر تبدیل شده است:
https://www.w3.org/TR/DOM-Level-2-Events/#events-Events-registration
این شیوه استفاده از متدی تحت عنوان addEventListener است که در مکانیزم آن مفسر جاوا اسکریپتی مرورگر گوش به زنگ اجرای رویداد بر روی عنصر مورد نظر بوده و در صورت اتفاق تابع متناظر پردازش می شود، شیوه کار addEventListener شباهت زیادی به Event Handler مستقل دارد منتها Syntax آنها متفاوت و قابلیت های addEventListener بیشتر است که در ادامه بررسی خواهیم کرد.نکته: addEventListener در نسخه های قدیمی (8 و ماقبل) مرورگر اینترنت اکسپلورر پشتیبانی نمی شود و در صورتی که کاربرانی با این نسخه از مرورگر اکپسلورر مد نظر برنامه ما باشند باید از attachEvent استفاده کنیم.
برای استفاده از addEventListener باید از Syntax آن پیروی کنیم:
object.addEventListener('event', function, options);
پارامتر object همان عنصری است که در صفحه انتخاب کرده ایم، قسمت Event نام رویداد (به فرض click) و Function تابعی است که به رویداد متصل و قسمت Options تنظیمات اضافه و اختیاری متد است که در صورت نیاز اعمال می شود (مقدار پارامتر سوم را فعلا false در نظر گرفته و توضیح تکمیلی در این خصوص را به آموزش های پیشرفته جاوا اسکریپت موکول می کنیم)، در نمونه کد زیر در صورت کلیک بر روی بلاک رنگی با آی دی فرضی clickable تابع showText اجرا می شود:<style>
#clickable{
width: 100px;
height: 100px;
background: #FC9;
}
</style>
<div id="clickable"></div>
<script>
var block = document.getElementById("clickable");
function showText(){
alert("بر روی بلاک رنگی کلیک شد");
}
if(block.addEventListener){
//تمام مرورگرها به جزء اینترنت اکسپلورر 8 و ماقبل
block.addEventListener("click", showText, false);
} else{
//اینترنت اکسپلورر 8 و ماقبل
block.attachEvent("onclick", showText);
}
</script>
در انتهای این صفحه می توانیم به صورت آنلاین مثال هایی از کاربرد addEventListener را بررسی کنیم.همان طور که مشخص است بین دو روش addEventListener و Event Handler مستقل شباهت زیادی وجود دارد، اما به چند دلیل استفاده از روش addEventListener می تواند بهینه تر باشد:
- وجود امکان حذف رویداد اختصاص داده شده به یک عنصر با removeEventListener (detachEvent برای IE8 و ماقبل)، مثال:
<style>
#clickable{
width: 100px;
height: 100px;
background: #FC9;
}
</style>
<div id="clickable"></div>
<script>
var block = document.getElementById("clickable");
function showText(){
alert("این پیام فقط یک بار نمایش داده می شود");
if(block.removeEventListener){
block.removeEventListener("click", showText, false);
} else{
block.detachEvent("onclick", showText);
}
}
if(block.addEventListener){
block.addEventListener("click", showText, false);
} else{
block.attachEvent("onclick", showText);
}
</script>
به این صورت با یک بار اجرای تابع showText رویدادهای اختصاص داده شد قبلی حذف می شوند.- وجود امکان اختصاص بیش از یک تابع در رویداد مد نظر، به طور مثال:
<button id="click-button" type="button">Click</button>
<script>
var button = document.getElementById("click-button");
function showText1(){
alert("تابع اول اجرا شد");
}
function showText2(){
alert("تابع دوم اجرا شد");
}
if(button.addEventListener){
button.addEventListener("click", showText1, false);
button.addEventListener("click", showText2, false);
} else{
button.attachEvent("onclick", showText1);
button.attachEvent("onclick", showText2);
}
</script>
به این صورت می توانیم دو یا چند Handler مختلف را به عنصر مورد نظرمان با Listener مشابه نسبت دهیم.رویدادهای پرکاربرد جاوا اسکریپت در صفحات وب
با توجه به طیف وسیع دستگاه هایی که جاوا اسکریپت در آنها اجرا می شود و همچنین وجود قابلیت تنظیم خاصیت های CSS با JavaScript رویدادهای این زبان فراوانی و تنوع زیادی دارند و بررسی کامل آنها زمانبر و شاید خارج از حوصله این مبحث است، از این رو جهت آشنایی بیشتر در لینک زیر لیستی از رویدادهایی که بیشترین کاربرد را در کدنویسی صفحات وب دارند به همراه مثال های آنلاین تهیه کرده ایم که به نظر برای آشنایی اولیه و استفاده های متداول کافی خواهد بود:
لیست رویدادهای پرکاربرد جاوا اسکریپت در صفحات وب
نکته: برخی رویدادهای جاوا اسکریپتی در مرورگرها و نسخه های مختلف آنها به یک میزان و به یک شکل پشتیبانی نمی شوند، لذا در به کار بردن آنها (بخصوص اگر کاربران هدف برنامه ما از نسخه های قدیمی مرورگرها استفاده می کنند) باید به سطح پشتیبانی رویداد دقت و حتی المقدور در چند مرورگر مختلف آن را تست و بررسی کنیم.
مثال و پیش نمایش آنلاین
برای آشنایی بیشتر با مبحث رویدادها آموزش را با چند مثال به پایان می بریم، جهت تست و بررسی می توانیم از کد و پیش نمایش آنلاین زیر استفاده کنیم:
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | تست و بررسی رویدادها در جاوا اسکریپت</title>
<!-- Webgoo.ir -->
<style>
body {
font-family: Tahoma, Geneva, sans-serif;
font-size: 12px;
direction: rtl;
}
#black-block {
width: 100px;
height: 100px;
background-color: #333;
display: block;
margin: 4px;
}
#show-text {
height: 20px;
}
</style>
</head>
<body>
<noscript>جاوا اسکریپت در مرورگر شما غیر فعال است!<br></noscript>
<script>
function hello(){
alert("به آموزش جاوا اسکریپت خوش آمدید");
}
function add(){
document.getElementById("show-text").innerHTML = "این متن با اجرا شدن رویداد onmouseover در بلاک div با آی دی فرضی show-text چاپ می شود، برای بررسی رویداد onmouseout نشانه گر را از محدوده این دکمه خارج کنید.";
}
function clean(){
document.getElementById("show-text").innerHTML = '';
}
</script>
مثال برای رویداد onclick:
<br><br>
<input type="button" value="کلیک کنید" onclick="hello();">
<hr>
مثال برای رویداد onclick با شیوه addEventListener:
<br><br>
بر روی بلاک زیر کلیک کنید.
<div id="black-block"></div>
<script>
var myblock = document.getElementById("black-block");
function showText(){
alert("بر روی بلاک مشکی کلیک شد");
}
if(myblock.addEventListener){
//تمام مرورگرها به جزء اینترنت اکسپلورر نسخه 8 و ماقبل
myblock.addEventListener("click", showText, false);
} else {
//اینترنت اکسپلورر نسخه 8 و ماقبل
myblock.attachEvent("onclick", showText);
}
</script>
<hr>
مثال برای رویدادهای onmouseover و onmouseout:
<br><br>
<input type="button" value="ماوس را بر روی این دکمه بیاورید" onmouseover="add();" onmouseout="clean();">
<div id="show-text"></div>
<hr>
مثال برای رویدادهای onfocus و onblur:
<br><br>
<input type="text" value="در این فیلد کلیک کنید..." onfocus="myFocusFunc(this);" onblur="myBlurFunc(this);">
<script>
function myFocusFunc(element){
if(element.value == element.defaultValue){
element.value = '';
}
}
function myBlurFunc(element){
if(element.value == ''){
element.value = element.defaultValue;
}
}
</script>
<hr>
مثال برای رویدادهای onkeydown و onkeyup:
<br><br>
<input type="text" id="first" placeholder="اینجا تایپ کنید..." onkeydown="myKeydownFunc(this);" onkeyup="myKeyupFunc(this);">
<script>
function myKeydownFunc(element){
element.style.color = "red";
}
function myKeyupFunc(element){
element.style.color = "blue";
}
</script>
</body>
</html>
پیش نمایش آنلایندسته بندی: آموزش مقدماتی » JavaScript
برچسب ها: JavaScript

کار با تاریخ و زمان در جاوا اسکریپت (JavaScript)
کار با متد getElementById و innerHTML در جاوا اسکریپت (JavaScript)
شروعی بر برنامه نویسی جاوا اسکریپت (JavaScript)
عملگرها (Operators) در جاوا اسکریپت (JavaScript)
حلقه for و while در جاوا اسکریپت (JavaScript)
دیدگاه


محمود
۰۹:۱۲ ۱۴۰۰/۰۶/۲۳
سلام و وقت بخیر
یه ازمون مجازی ساده با کمک کدهای شما ساختم . کدهای اچ تی ام ال ، جاوا اسکریپت و سی اس اس را نوشتم. وقتی روی جواب صحیح کلیک می شود رنگ آن سبز و وقتی روی جواب غلط کلیک می شود رنگ آن تغییر دیگری می کند . دقیق 10 سوال 4 گزینه ای است و بسیار ساده . در ضمن کد جاوا اسکریپت تغییر رنگ جواب درست از روی «آی دی» بلاک مشخص می شود.
استاد عزیز ،کد جاوا اسکریپت ساده ای برای محاسبه درصد جواب درست یا تعداد جواب درست از 10 را می خواهم.
با تشکر
یه ازمون مجازی ساده با کمک کدهای شما ساختم . کدهای اچ تی ام ال ، جاوا اسکریپت و سی اس اس را نوشتم. وقتی روی جواب صحیح کلیک می شود رنگ آن سبز و وقتی روی جواب غلط کلیک می شود رنگ آن تغییر دیگری می کند . دقیق 10 سوال 4 گزینه ای است و بسیار ساده . در ضمن کد جاوا اسکریپت تغییر رنگ جواب درست از روی «آی دی» بلاک مشخص می شود.
استاد عزیز ،کد جاوا اسکریپت ساده ای برای محاسبه درصد جواب درست یا تعداد جواب درست از 10 را می خواهم.
با تشکر
برای صرف نمایش درصد نمونه تابع زیر کفایت می کند:
<script>
function percentage(partial, total) {
return (100 * partial) / total;
}
alert(percentage(4, 10));
</script>
اما اگر حالت خاصی مد نظر باشد می توانید نمونه کدها را به صورت آنلاین یا آفلاین به همراه توضیحات در یک فایل HTML ارسال کنید تا بررسی کنیم.محمود
۱۱:۵۷ ۱۴۰۰/۰۶/۲۴
سلام
الان که سوال ها را پشت سر هم نوشتم یه مشکل دیگر هم دیده شد. بجز نشان دادن جواب های صحیح از کل سوالات که برایش راهنمایی می خواستم مشکل دیگر هم این است که ، کدها در سوال 1 خوب کار می کند ولی برای سئوالات دیگر وقتی رویداد را انجام میدهی یعنی روی یکی از گزینه های سوال 2 یا ... کلیک می کنی نتیجه در سوال 1 نمایش داده می شود.
ممنون می شوم راهنمایی کنید .
سورس کدهای من به قرار زیر است با تشکر
الان که سوال ها را پشت سر هم نوشتم یه مشکل دیگر هم دیده شد. بجز نشان دادن جواب های صحیح از کل سوالات که برایش راهنمایی می خواستم مشکل دیگر هم این است که ، کدها در سوال 1 خوب کار می کند ولی برای سئوالات دیگر وقتی رویداد را انجام میدهی یعنی روی یکی از گزینه های سوال 2 یا ... کلیک می کنی نتیجه در سوال 1 نمایش داده می شود.
ممنون می شوم راهنمایی کنید .
سورس کدهای من به قرار زیر است با تشکر
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style>
p
{
line-height: 4;
font-weight: 600;
}
a
{
text-decoration:none;
margin-right:10px;
color: #444;
}
.alef{
color:#444444;
background:#CCC;
padding:10px 8px;
border-radius:50%
}
.dorost:focus
{
color:#0040ff;
}
.falseB{
color:#444444;
background:#CCC;
padding:10px 12px;
border-radius:50%
}
.false:focus
{
color:#000;
}
</style>
</head>
<body style="direction:rtl">
<p>1- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="thrue_befor">الف</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p>2- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="B">الف</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">ب</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">پ</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p>3- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="thrue_befor">الف</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p>4- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="T">الف</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">ت</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p>5- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="thrue_befor">الف</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p>6- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="B">الف</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">ب</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">پ</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p>7- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="T">الف</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">ت</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p>8- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="T">الف</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">ب</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="B">پ</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">ت</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p>9- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="thrue_befor">الف</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="B">ب</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">پ</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p><br>
<p>10- کزینۀ صحیح را انتخاب کنید</p>
<p><span class="alef" id="B">الف</span><a href="#" onclick="playAudioo(); ChangeColor('B');" class="false" id="false_1">گزینه درست</a></p>
<p><span class="falseB" id="P">ب</span><a href="#" onclick="playAudioo(); ChangeColor('P');" class="false" id="false_2">گزینه درست</a></p>
<p><span class="falseB" id="thrue_befor">پ</span><a href="#" onclick="playAudio()" class="dorost" id="thrue">گزینه درست</a></p>
<p><span class="falseB" id="T">ت</span><a href="#" onclick="playAudioo(); ChangeColor('T');" class="false" id="false_3">گزینه درست</a></p><br>
<p> <audio id="audio_thrue">
<source src="voice/thrue.ogg" type="audio/ogg">
<source src="voice/thrue.mp3" type="audio/mpeg">
</audio>
</p>
<p>
<audio id="audio_false">
<source src="voice/false.ogg" type="audio/ogg">
<source src="voice/false.mp3" type="audio/mpeg">
</audio>
</p>
<script>
var audio_1 = document.getElementById("audio_thrue");
var rangdorst = document.getElementById("thrue_befor");
function playAudio(){
audio_1.play();
rangdorst.style.backgroundColor = "#0040ff";
rangdorst.style.color = "#FFF";
}
var audio_2 = document.getElementById("audio_false");
var rangfals0 = document.getElementById("B");
var rangfals1 = document.getElementById("P");
var rangfals2 = document.getElementById("T");
var rangclastdoros = document.getElementById("thrue");
function playAudioo(){
audio_2.play();
rangfals0.style.color = "#666";
rangfals1.style.color = "#666";
rangfals2.style.color = "#666";
rangclastdoros.style.color = "#6086A8";
rangfals0.style.backgroundColor = "#eee";
rangfals1.style.backgroundColor = "#eee";
rangfals2.style.backgroundColor = "#eee";
rangdorst.style.backgroundColor = "#6086A8";
rangdorst.style.color = "#FFF";
}
function ChangeColor(id){
var rang = document.getElementById(id);
rang.style.backgroundColor = "#757575";
rang.style.color = "#000";
}
//محاصبه درصد//
function percentage(partial, total) {
return (100 * partial) / total;
}
alert(percentage(4, 10));
</script>
</body>
</html>
مشکل از این است که ID های یکسان در صفحه وجود دارد به فرض چند ID با مقدار B که باید به شکل نمونه زیر تغییر کند:
<span class="falseB" id="B-1">
ChangeColor('B-1')
در کدهای جاوا اسکریپتی هم باید متناسب با آی دی ها دستورات را تغییر دهید، در کل نیازمند آشنایی قبلی با برنامه نویسی است در غیر اینصورت کار سخت می شود.محمود
۰۸:۵۴ ۱۴۰۰/۰۹/۲۴
سلام
چگونه رویداد onclick را در نوشته های وردپرس قرار بدهم به عنوان مثال وقتی دکمه زیر را در نوشته قرار می دهم ، بعد از انتشار، رویداد onclick حذف می شود.
چگونه رویداد onclick را در نوشته های وردپرس قرار بدهم به عنوان مثال وقتی دکمه زیر را در نوشته قرار می دهم ، بعد از انتشار، رویداد onclick حذف می شود.
<button class="btn-dohezar" href="#" onclick="hide('dohezar-soal'); show('dohezar')">سوال بعدی</button>
با تشکر.برخی ویرایشگرها اجازه نمی دهند از رویداد onclick به صورت خطی استفاده کنیم، برای رفع مشکل می توانیم به تگ مورد نظر ID یکتا اختصاص دهیم و رویداد را به کمک addEventListener تنظیم کنیم، به طور مثال لینک زیر در محتوای مطلب (از طریق سورس HTML) درج می شود:
<a href="#" id="my-button">کلیک</a>
و در انتهای خرجی HTML صفحه کد زیر را قرار می دهیم:<script>
var elm_1 = document.getElementById("my-button");
function showText1(){
alert("1- بر روی لینک کلیک شد");
}
function showText2(){
alert("2- بر روی لینک کلیک شد");
}
elm_1.addEventListener("click", showText1, false);
elm_1.addEventListener("click", showText2, false);
</script>
در مورد وردپرس قسمت دوم کدها احتمالا باید در انتهای سورس قالب درج شود تا در خروجی قابل استفاده باشد.محمود
۱۱:۲۱ ۱۴۰۰/۰۹/۲۴
امکانش هست در فایل فانکشن
با تشکر
<button class="btn-dohezar" href="#" onclick="hide('dohezar-soal'); show('dohezar')">سوال بعدی</button>
را به شورت کد تبدیل کرد. خیلی ممنون می شومبا تشکر
دقیقا متوجه سوالتان نشدیم، اما روش گفته شده برای تمام تگ ها کاربرد دارد، کافی است در سورس HTML مطالب وردپرس تگ را به صورت زیر داشته باشید:
<button id="btn-dohezar-1" class="btn-dohezar" href="#" >سوال بعدی</button>
و در انتهای کد قالب وردپرس (به نحوی که در خروجی HTML صفحه چاپ شود) نمونه دستور زیر را درج کنید:<script>
function showHide(){
hide('dohezar-soal');
show('dohezar');
}
var elm_1 = document.getElementById("btn-dohezar-1");
elm_1.addEventListener("click", showHide, false);
</script>
پدرام حسین وند
۱۶:۰۹ ۱۴۰۰/۱۱/۱۹
صفحه وبی طراحی کنید که ، سه تا تکست باکس داشته باشه، عدد رو از دو تکست باکس اول دریافت و حاصل جمع رو در تکست باکس سوم نمایش بده. این عملیات هم وقتی کلیک روی دکمه که در صفحه قرار دادید، و نوشته روش هم علامت مساوی هست، انجام بشه.
برای بدست آوردن حاصل جمع اعداد دو فیلد input و نمایش در فیلد سوم پس از رویداد کلیک (onclick) می توانید از نمونه کد زیر که مبتنی بر JavaScript است استفاده کنید:
<script>
function doSumNumbers(){
var elm_1 = document.getElementById('num-1');
var elm_2 = document.getElementById('num-2');
var elm_3 = document.getElementById('num-3');
elm_3.value = parseInt(elm_1.value) + parseInt(elm_2.value);
}
</script>
<input type="text" id="num-1"> + <input type="text" id="num-2"> <input type="button" value="=" onclick="doSumNumbers();"> <input type="text" id="num-3">
محمود
۱۷:۰۵ ۱۴۰۰/۱۱/۲۶
سلام استاد گرامی
از فانکشن زیر برای حذف تگ استفاده میکنم.
با تشکر.
از فانکشن زیر برای حذف تگ استفاده میکنم.
function removeTag(){
var nodes = document.body.getElementsByTagName('mark');
while(nodes.length > 0) {
nodes[0].parentNode.removeChild(nodes[0]);
}
}
ولی متاسفانه محتوای داخل تگ را هم پاک می کند. یعنی به عنان مثال در تک زیر<mark id="did">صفحه</mark>
با انجام دستور کلمه «صفحه» نیز حذف می شود. لطفن فانکشن را طوری تغیر بدهید که فقط تگ ها را بدون حذف محتوا پاک کند.با تشکر.
برای حذف تگ های mark بدون حذف متن محتوا تابع removeTag را به شکل زیر تغییر دهید:
function removeTag(){
var marks = document.getElementsByTagName('mark');
while(marks[0]){
marks[0].outerHTML = marks[0].innerHTML;
}
}
محمود
۱۷:۵۷ ۱۴۰۰/۱۱/۲۶
البته استاد کد زیر را پیدا کردم ولی فقط به ترتیب تگ ها را حذف می کند مثلا اگر 10 تگ
<mark> </mark>
باشند. با هر بار کلیک دکمه فقط یکی از تگ ها حذف می شود و باید، کلیک را تکرار کرد . در صورتی که من می خواهم با یک بار کلیک همۀ تگ های مورد نظر حذف شوند.function removeTag(){
var mark=document.getElementsByTagName('mark')[0]; // get the mark
var pa=mark.parentNode;
while(mark.firstChild) pa.insertBefore(mark.firstChild, mark);
pa.removeChild(mark);
}
البته کد کامل بصورت زیر است . <style>
.{
background-color: #efefef;
}
</style>
<script>
function search(e) {
let searched = document.getElementById("search").value.trim();
if (searched !== "") {
let text = document.getElementById("text").innerHTML;
let re = new RegExp(searched,"g"); // search for all instances
let newText = text.replace(re, `<mark id=did>${searched}</mark>`);
document.getElementById("text").innerHTML = newText;
document.getElementById("did").scrollIntoView({behavior: 'smooth'});;
}
}
function removeTag(){
var mark=document.getElementsByTagName('mark')[0]; // get the mark
var pa=mark.parentNode;
while(mark.firstChild) pa.insertBefore(mark.firstChild, mark);
pa.removeChild(mark);
}
</script>
<body style="direction: rtl;">
<h1>
های لایت کردن کلمات جستجو شده
</h1>
<input type="text" id="search"/>
<button onClick="search(id)" id="button">
جستجو
</button>
<button onClick="removeTag(did)" id="button">
پاک کن
</button>
<div id="text">
از جمله مباحث پیشرفته در زمینه استایل نویسی وب با زبان CSS، بحث استفاده از ویژگی position و float برای شناور کردن عناصر مختلف در صفحات به نحو دلخواه و مورد انتظار است، آشنایی با این خاصیت ها را می توان نقطه آغاز استایل نویسی حرفه ای برشمرد چرا که معمولا<br> در بسیاری از جلوه های ویژه و امکانات مورد نیاز برای ساخت واسط کاربری (UI یا User Interface) مناسب در صفحات وب این خواص استاندارد استفاده خواهند شد.
</div>
</body>
اگر طولانی است میتونید برای پاسخ حذفش کنید. با تشکر.در یادداشت قبلی تابع removeTag را ویرایش کرده ایم که می توانید جایگزین کنید.
R
۱۲:۴۴ ۱۴۰۰/۱۲/۲۰
سلام من میخوام با استفاده از کد onclick یک div ایجاد بشه یعنی وقتی روی دکمه مورد نظر کلیک بشه اون باکس من ایجاد بشه و به نمایش در بیاد چطور ممکنه همچین کاری انجام بدم؟ ممنون از پاسخگویتون
برای ساخت بلاک div با جاوا اسکریپت می توانید از نمونه کد زیر الگوبرداری کنید:
<style>
.my-div {
width: 500px;
height: 200px;
border: 1px solid #CCC;
background: #CCCCFF;
}
</style>
<script>
function addDiv() {
var call = true;
if(call === true) {
var div = document.createElement('div');
div.className = "my-div";
document.getElementsByTagName('body')[0].appendChild(div);
}
}
</script>
<body>
<button id="my-button">ساخت بلاک</button>
<script>
document.getElementById("my-button").addEventListener('click', addDiv);
</script>
</body>
دنیز
۰۲:۴۹ ۱۴۰۱/۰۳/۰۷
یک صفحه html طراحی کنید که در آن از event و effect های jquery استفاده شده باشد
در صورتی که صفحه ای آماده کرده اید می توانید ایرادات جزئی را از این طریق مطرح و پاسخ دریافت کنید در غیر اینصورت رفع مشکل نیاز به ثبت سفارش دارد، در صورت تمایل جهت پیگیری لطفا با بخش برنامه نویسی وب مکاتبه نمائید.
مریم حسناتی
۱۸:۲۰ ۱۴۰۱/۰۳/۱۲
سلام. میخواهم روشن و خاموش کردن لامپ را به وسیله یک دکمه برای روشن و خاموش کردن که تابعی فراخوانی شود و لامپ را خاموش و روشن کند
سوالتان کلی است، اگر قسمتی از برنامه را نوشته اید لطفا کدها را در یک صفحه وب آنلاین قرار داده و آدرس URL را ارسال کنید تا بررسی کنیم در غیر اینصورت می توانید به همراه شرح کامل برنامه درخواستی با بخش برنامه نویسی مکاتبه داشته باشید.
ابوالفضل
۲۰:۴۵ ۱۴۰۲/۰۲/۳۰
سلام استاد
بازم من اومدم با طرح یه سوال جدید من میخوام در یک جدول در دیتابیس یک مقدار که به 1 تغییر کرد یک صدا در صفحه وب سایت اگر حتی کاربر در حال بازدید هست پخش شود مثل اعلان چت مانند
ممنون میشم مثل همیشه راهنماییم کنید
بازم من اومدم با طرح یه سوال جدید من میخوام در یک جدول در دیتابیس یک مقدار که به 1 تغییر کرد یک صدا در صفحه وب سایت اگر حتی کاربر در حال بازدید هست پخش شود مثل اعلان چت مانند
ممنون میشم مثل همیشه راهنماییم کنید
برای ایجاد این قابلیت باید تابعی با Ajax (اگر ارتباط مداوم و لحظه ای اولویت نیست) یا WebSocket (در حالتی که ارتباط لحظه ای و مداوم مهم است) بنویسیم و در حالت Ajax با ترکیب آن با متدهایی مانند setTimeout هر چند ثانیه یک بار درخواست ارسال و پاسخ سرور را بررسی کنیم (در حالت WebSocket ارتباط مداوم برقرار می شود و می توانیم پاسخ سرور را لحظه ای بررسی کنیم)، اگر پاسخ 1 بود کدهایی برای اجرای فایل صوتی اجرا کنیم، آموزش های Ajax در سایت وجود دارد، برای WebSocket منابع زیر را بررسی کنید:
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
https://www.tutorialspoint.com/html5/html5_websocket.htm
نمونه کد برای اجرای فایل صوتی:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_audio_play
سینا
۰۳:۴۶ ۱۴۰۲/۰۳/۰۷
با سلام و خسته نباشید
من یه متنی رو از یه سایت با file_get_contents می گیرم
و توی سایت منتشر می کنم راهی وجود داره این متن که انگلیسی هست با ترانسلیت گوگل و یا هرجایی قبل انتشار فارسی بشه؟ یا وقتی بصورت عادی متنی رو انگلیسی میخواهیم منتشر کنیم با استفاده از api این ترانسلیتها تبدیل به فارسی بشه!
با تشکر
من یه متنی رو از یه سایت با file_get_contents می گیرم
و توی سایت منتشر می کنم راهی وجود داره این متن که انگلیسی هست با ترانسلیت گوگل و یا هرجایی قبل انتشار فارسی بشه؟ یا وقتی بصورت عادی متنی رو انگلیسی میخواهیم منتشر کنیم با استفاده از api این ترانسلیتها تبدیل به فارسی بشه!
با تشکر
تا جایی که اطلاع داریم برای ترجمه متن API هایی در وب وجود دارد که با جستجوی عباراتی مثل "PHP Translation API" می توانید مواردی را از سایت هایی مانند Github پیدا و تست کنید، عمده این اسکریپت ها مبتنی بر سرویس گوگل هستند و متاسفانه ممکن است بحث تحریم برای IP های داخلی یا محدودیت های دیگری وجود داشته باشد، همچنین باید تا حدودی با کدنویسی PHP و نحوه استفاده از API ها آشنا باشید.
آخرین دیدگاه ها

javascript
سلام 🙌 توی جاوا اسکریپت چطور تگ آپشن رو پیش فرض بزاریم مثلا : تگ آپشن _استان محل صدور : همدان -...۱۴۰۲/۰۷/۰۶
Fateme
سلام مطالب عالی و استفاده می کنم دستتان درد نکنه . سوال من این هست چطور میتونم تاریخ تولد را وارد کنم سن شخص رو...۱۴۰۲/۰۷/۰۵
مجتهدزاده
سلام من در لاراول سعی دارم تا با یک لینک رو اجرا کنم تا یک اس ام اس به شماره ای که در...۱۴۰۲/۰۷/۰۳
پـــرتو
سلام جناب خسته نباشید شرمنده مزاحم میشم عه جناب ببخشید من دو سه تا وبلاگ دارم که یکیش یا دوتاشون هک میشن یعنی...۱۴۰۲/۰۷/۰۳
فاطمه سیداحمدی
با سلام و خسته نباشید من میخوام با استفاده از جاوااسکریپت یه کدی داشته باشم که وقتی کاربر چیزی رو از توی سایت من...۱۴۰۲/۰۷/۰۲
رضا جهانیان
درود برشما من تو گوگل که اسم سایت حراجستون را سرچ می کنم اسم دامنه نوشته شده به انگلیسی کدهای زیادی هم استفاده کردم...۱۴۰۲/۰۶/۳۱
سعید
نمای ظاهری من مثل قبل که در اوت لوک میفرستادم در نیو ایمیل نیست یعنی تغییر کرده چطور میتونم برگردم به همون حالت اول خودش...۱۴۰۲/۰۶/۲۷
سینا
با سلام و خسته نباشید من برای ترجمه متن از گوگل ترانسلیت استفاده می کنم یه مشکلی که دارم اینکه وقتی متنی رو برام...۱۴۰۲/۰۶/۲۵
کوروش
سلام خسته نباشید توضیح : سایتی که تگ های select option ها و همه div ها و label ها ( کلاس های...۱۴۰۲/۰۶/۲۴
عدم اجرای فونت فیس در تب منو
سلام برای تب منو فونت فیس برای تب اول کار میکند اما تب های بعدی اعمال نمیشود چکار باید کرد۱۴۰۲/۰۶/۲۲
محبوبه قاسم پور
سلام وقتتون بخیر برای منوهای کشویی سایت، اگر خاصیت overflow:hidden باشد، زیرمنوها نمایش داده نمی شود، از طرفی اگر این خاصیت فعال نباشد...۱۴۰۲/۰۶/۱۸
پـــرتو
سلام فکنم در یادداشت ها ارسال شده بود و تاریخشم یادم نیست ولی من واقعا نمی دونم کامنتش کجاست که برم برش دارم ...۱۴۰۲/۰۶/۱۴
پـــرتو
سلام خسته نباشید ببخشید مزاحم شدم می خواستم بگم که یه کدی داده بودین قبلا برای بلاگفا که آی پی کسایی که بهمون توهین می...۱۴۰۲/۰۶/۱۱
امیرحسین رستمی
سلام مجدد وقت بخیر لطفا لینک زیر را ببینید میخوام تمام متن های فارسی که اینجا انتخاب کردم رو با عبارت با قائده انتخاب...۱۴۰۲/۰۶/۱۱
امیرحسین رستمی
سلام وقت بخیر من این متنو دارم: میخوام فقط متن های فارسی رو انتخاب کنم با preg_match و متن جایگزین براش بزارم قبلا...۱۴۰۲/۰۶/۱۱
امیرحسین رستمی
در رابطه با دوتا سوال قبلی من این کد رو نوشتم شما بررسی کنید ببینید اگه مشکل دیگه ای نداره ، درست داره کار میکنه...۱۴۰۲/۰۶/۰۹
امیرحسین رستمی
سلام وقت بخیر من یک عبارات با قائده ای میخوام که این متن رو : من همچین عبارتی در نظرم هست ولی ...۱۴۰۲/۰۶/۰۹
hossein
سلام مجدد، ممنون از پاسخگویی شما از وردپرس استفاده میکنم و قالب وودمارت، هدر هم با هدر ساز قالب ساخته شده با اینکه...۱۴۰۲/۰۶/۰۹
امیرحسین
سلام وقت بخیر من یک برنامه نوشتم که از ایپی ای گوگل کمک میگیره و متن میدم بهش و ترجمه میکنه : شما فرض...۱۴۰۲/۰۶/۰۹
hossein
سلام وقت شما بخیر باشه ابتدا جا داره از شما تشکر کنم میخوام یک آیکن لینک دار توی هدر سایتم را از دید...۱۴۰۲/۰۶/۰۹
علی
سلام و با تشکر از راهنمایی شما بنده یک وب سرویس ارسال پیامک دارم که از طریق آن برای کابرانم پیامک ارسال می کنم....۱۴۰۲/۰۶/۰۷
مهدی
سلا چطوری میتونم کدام تو مرورگر دقیق نمایش بدم حتی >< تگ هام نمایش داده بشه در html تگ کد را هم معرف نکنید چون...۱۴۰۲/۰۶/۰۴
محمدرضا
سلام و خدا قوت حضور شما بزرگوار. اول یه تشکر و قدردانی از شما دارم که زمان میزارید و جواب همه دوستان رو میدید....۱۴۰۲/۰۶/۰۳
محمدرضا
سلام وقت شما بخیر لطف بفرمائید با switch و default کدی رو بنویسید که: اگه متغیر a یک باشد متغیر b دو...۱۴۰۲/۰۶/۰۱
پـــرتو
سلام بابت جواب به سوالم در مورد بلاگفا ممنون من خودم با پشتیبانی بلاگفا تماس گرفتم گفنن نمیشه اینکار ولی یه سوال دیگه ازتون داشتم...۱۴۰۲/۰۵/۲۸
fatima
سلام. خسته نباشید. ما با responsive هم میتوانیم اسکرول افقی را حذف کنیم؟۱۴۰۲/۰۵/۲۸
عاطفه
ممنون از پاسخگوییتون. اگر ممکنه این سوال رو هم جواب بدید ممنون میشم. معنی این ارور ها و راه حل رفع اونها رو میخواستم بدونم....۱۴۰۲/۰۵/۲۶
عاطفه
سلام، وقت بخیر. من چندتا مشکل سایتم داره که نمیدونم چطور باید برطرفشون کنم. یکی اینکه وقت لینکای شکسته رو چک میکنم برای لینکدین و...۱۴۰۲/۰۵/۲۵
در انتظار بررسی: ۰
پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.
پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.