আমি একটি "প্রয়াত" উত্তর যোগ করতে চাই, কারণ আমি সঙ্গে লড়াই 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ইভেন্ট নেই?