আমি একটি "প্রয়াত" উত্তর যোগ করতে চাই, কারণ আমি সঙ্গে লড়াই change
, keyup
এবং search
আজ, এবং হয়ত আমি শেষ পাওয়া খুব অন্যদের জন্য দরকারী হতে পারে। মূলত, আমার কাছে সন্ধানের মতো টাইপ প্যানেল রয়েছে এবং আমি কেবলমাত্র ছোট্ট X টিপে (ক্রোম এবং অপেরার অধীনে, এফএফ এটি প্রয়োগ করে না) সঠিকভাবে প্রতিক্রিয়া জানাতে চেয়েছিলাম এবং ফলস্বরূপ একটি সামগ্রীর ফলক পরিষ্কার করতে চাই।
আমার এই কোডটি ছিল:
$(some-input).keyup(function() {
// update panel
}
$(some-input).change(function() {
// update panel
}
$(some-input).on("search", function() {
// update panel
}
(এগুলি পৃথক কারণ আমি কখন এবং কোন পরিস্থিতিতে প্রত্যেককে ডাকা হয়েছিল তা যাচাই করতে চেয়েছিলাম)।
দেখা যাচ্ছে যে ক্রোম এবং ফায়ারফক্স আলাদাভাবে প্রতিক্রিয়া দেখায়। বিশেষত, ফায়ারফক্স change
" ইনপুটটিতে প্রতিটি পরিবর্তন" হিসাবে বিবেচনা করে, যখন ক্রোম এটিকে "ফোকাস হারিয়ে ফেললে এবং সামগ্রী পরিবর্তন করা হয়" হিসাবে বিবেচনা করে। সুতরাং, Chrome এ "আপডেট প্যানেল" ফাংশন একবার, প্রতিটি কী-স্ট্রোকের জন্য এফএফ-তে একবার ডাকা হয়েছিল (একটিতে keyup
, একটিতে change
)
অতিরিক্তভাবে, ছোট এক্স (যা এফএফ এর অধীনে উপস্থিত নেই) দিয়ে ক্ষেত্রটি সাফ search
করা ক্রোমের অধীনে ইভেন্টটিকে বহিস্কার করেছে : না keyup
, না change
।
উপসংহার? input
পরিবর্তে ব্যবহার করুন:
$(some-input).on("input", function() {
// update panel
}
এটি আমি যে সমস্ত ব্রাউজারগুলি পরীক্ষা করেছি তার অধীনে একই আচরণের সাথে কাজ করে, ইনপুট সামগ্রীর প্রতিটি পরিবর্তনে প্রতিক্রিয়া জানায় (মাউসের সাথে অনুলিপি-আটকানো, "স্বয়ংক্রিয়ায়িতকরণ এবং" এক্স "অন্তর্ভুক্ত)।
onchange
ইভেন্ট নেই?