আমি একটি jQuery UI ডায়ালগ ব্যবহার করছি। যদি এটি খোলা থাকে তবে আমি একটি জিনিস করতে চাই। যদি এটি বন্ধ থাকে তবে আমি আরও একটি কাজ করতে চাই।
আমার প্রশ্নটি হল, কোনও জিকোয়ারি ইউআই ডায়ালগ বক্সটি খোলা আছে কিনা বা কীভাবে সনাক্ত করব?
আমি একটি jQuery UI ডায়ালগ ব্যবহার করছি। যদি এটি খোলা থাকে তবে আমি একটি জিনিস করতে চাই। যদি এটি বন্ধ থাকে তবে আমি আরও একটি কাজ করতে চাই।
আমার প্রশ্নটি হল, কোনও জিকোয়ারি ইউআই ডায়ালগ বক্সটি খোলা আছে কিনা বা কীভাবে সনাক্ত করব?
উত্তর:
$("#mydialog").hasClass("ui-dialog-content")
। স্ট্যাকওভারফ্লো
আসলে, আপনাকে এটিকে স্পষ্টভাবে সত্যের সাথে তুলনা করতে হবে। যদি ডায়ালগটি এখনও উপস্থিত না থাকে, তবে এটি মিথ্যা ফিরবে না (যেমনটি আপনি প্রত্যাশা করেছিলেন), এটি একটি ডম বস্তুটি ফিরিয়ে দেবে।
if ($('#mydialog').dialog('isOpen') === true) {
// true
} else {
// false
}
যদি আপনি কোনও বিশেষ উপাদানটিতে ডায়ালগটি খোলা থাকে কিনা তা পরীক্ষা করতে চান তবে আপনি এটি করতে পারেন:
if ($('#elem').closest('.ui-dialog').is(':visible')) {
// do something
}
অথবা আপনি যদি উপাদানটি নিজেই দৃশ্যমান হয় কিনা তা পরীক্ষা করতে চান তবে আপনি এটি করতে পারেন:
if ($('#elem').is(':visible')) {
// do something
}
বা ...
if ($('#elem:visible').length) {
// do something
}
$dialog.hasClass('ui-dialog-content')
jQuery কথোপকথনের একটি isOpen
সম্পত্তি রয়েছে যা jQuery ডায়ালগটি খোলা আছে কিনা তা পরীক্ষা করতে ব্যবহার করা যেতে পারে।
আপনি এই লিঙ্কে উদাহরণ দেখতে পারেন: http://www.codegateway.com/2012/02/detect-if-jquery-dialog-box-is-open.html
ডায়লগটি এখনও সংজ্ঞায়িত না করা থাকলে ঘটে যাওয়া ত্রুটিটি এড়ানোর জন্য নিক ক্র্যাভারের মন্তব্যটি সবচেয়ে সহজ:
if ($('#elem').is(':visible')) {
// do something
}
আপনার সিএসএসে প্রথমে দৃশ্যমানতাটি সেট করা উচিত, সহজভাবে:
#elem { display: none; }