link - jquery w3schools




একটি খালি JQuery বস্তু পেয়ে (2)

নিচের কোডে আমি নির্বাচন মানের উপর ভিত্তি করে কিছু ফলো আপ প্রশ্নগুলি দেখানোর এবং লুকানোর জন্য একটি নির্বাচিত বাক্সে একটি পরিবর্তন হ্যান্ডলার সেট আপ করি।

উপরন্তু, নির্বাচনের কিছু মানগুলির জন্য একটি অতিরিক্ত বার্তা প্রদর্শিত হয়।

অতিরিক্ত বার্তা লুকানোর প্রয়োজন কিনা তা পরীক্ষা করার জন্য, আমি পূর্ববর্তী নামক একটি পরিবর্তনশীল রাখি। হ্যান্ডলারের নির্বাহের পরে আমি দেখতে চাই কিনা আগেরটি নাল নাকি আকার 0।

এটি একটি খালি JQuery অবজেক্টের পূর্ববর্তীটি শুরু করা ভাল হবে যাতে নলটির জন্য অতিরিক্ত চেক না করা যায়।

একটি $ () করে একটি বস্তুর আকার 1 প্রদান করে।

একটি খালি Jquery বস্তু তৈরি করার একটি উপায় আছে কি?

//Init function.
$(function(){
//Hold the previously selected object for the account type selection.

var Previous = null;  //Here is where I would like to initialize.
                      //something like Previous = $();


$("SELECT[name='AccountType']").change(
    function () {
        //Hide Previous message if there was one.
        if(Previous == null || Previous.size() > 0){ 
            Previous.hide();
        }

        //Show the message if found and save it as previous.
        Previous = $("#"+this.value+"_Msg").show();

        //Get fisrt question
        var FirstQuestion = $(".FirstQuestion");
        if(this.value === ''){
            FirstQuestion.hide();
        }else{
            //Manually show FirstQuestion.
            FirstQuestion.show();
        }
    });
}

সবচেয়ে খারাপ ক্ষেত্রে আমি এমন কিছু করতে পারতাম:

    var Previous = { size : function () { return 0; } };

কিন্তু যে overkill মত মনে হয়।


আমার পরামর্শ যে ভাবে এটা না। এই কাজ অনেক সহজ উপায় আছে। বিবেচনা:

<select id="select" name="select">
  <option value="msg_1">Message 1</option>
  <option value="msg_2">Message 1</option>
  <option value="msg_3">Message 1</option>
</select>

<div class="msg_1 msg_3">
  ...
</div>

<div class="msg_1">
  ...
</div>

<div class="msg_2">
  ...
</div>

$(function() {
  $("#select").change(function() {
    var val = $(this).val();
    $("div." + val").show();
    $("div:not(." + val + ")").hide();
  });
});

অনেক সহজ। মূলত কি প্রদর্শন এবং লুকানোর নির্দেশ নির্দেশ ক্লাস দিতে এবং তারপর কোন ট্র্যাকিং প্রয়োজন নেই। একটি বিকল্প হল:

$(function() {
  $("#select").change(function() {
    var val = $(this).val();
    $("div").each(function() {
      if ($(this).hasClass(val)) {
        $(this).show();
      } else {
        $(this).hide();
      }
    });
  });
});

এটি একটি খালি jQuery-object তৈরি করে:

$([])

আপডেট: jQuery এর নতুন সংস্করণে (1.4+), আপনি ব্যবহার করতে পারেন:

$()




jquery