JQuery এ কাস্টম ইভেন্টগুলি?


180

আমি কীভাবে সর্বোত্তম উপায়ে jquery এ কাস্টম ইভেন্ট হ্যান্ডলিং বাস্তবায়ন করতে পারি তার কিছু ইনপুট খুঁজছি। আমি জানি কীভাবে 'ক্লিক' ইত্যাদির মতো ডোম উপাদানগুলি থেকে ইভেন্টগুলি হুক আপ করা যায় তবে আমি কিছু পূর্বরূপ কার্যকারিতা পরিচালনা করার জন্য একটি ক্ষুদ্র জাভাস্ক্রিপ্ট লাইব্রেরি / প্লাগইন তৈরি করছি।

আমার প্রাপ্ত নিয়ম এবং ডেটা / ব্যবহারকারীর ইনপুট থেকে একটি ডোম উপাদানটিতে কিছু পাঠ্য আপডেট করার জন্য আমার কাছে একটি স্ক্রিপ্ট চলছিল, তবে এখন আমার অন্য উপাদানগুলিতে প্রদর্শিত একই পাঠ্যটি প্রয়োজন যা এই স্ক্রিপ্টটি সম্ভবত জানতে পারে না। আমার যা দরকার তা হ'ল একটি ভাল প্যাটার্ন যা কোনওভাবে এই লিপিটি প্রয়োজনীয় পাঠ্য উত্পাদন করে observe

তাহলে আমি কীভাবে এটি করব? ব্যবহারকারীর ইভেন্টগুলি বাড়াতে / পরিচালনা করতে আমি jquery এ কিছু বিল্টিন কার্যকারিতা উপেক্ষা করেছি বা এটি করার জন্য আমার কিছু jquery প্লাগইন প্রয়োজন? আপনি কি মনে করেন এটি হ্যান্ডেল করার সর্বোত্তম উপায় / প্লাগইন?


3
আর একটি কাঠামো রয়েছে, নকআউটজেএস.কম যা আসলে আমার পুরানো সমস্যাটি সমাধান করতে পারে, যদি এই প্রশ্নের দিকে তাকানো কেউ এর প্রয়োজন হয়।
পার হর্নশেজ-শিয়েরবেক

2
এই প্রশ্নটি থেকে আমি খ্যাতি পেতে চলেছি, লোকেরা এখনও এটি পড়তে থাকবে। আমি কেবলমাত্র ক্লায়েন্ট সাইড এমভিসি
পার হর্নশিজ-শিয়েরবেক

যদিও এটি কৌণিক ভি 1 থেকে সম্পূর্ণ পৃথক, অ্যাঙ্গুলার 2 ( কৌণিক.ইও ) এত প্রতিশ্রুতি প্রদর্শন করে এবং এটি বিটা / আরসি থেকে বের হয়ে গেলে আমার প্রথম বাছাই হবে।
পার হর্নশেজ-শিয়েরবেক

উত্তর:


105

এক নজর দেখে নাও:

(মেয়াদোত্তীর্ণ ব্লগ পৃষ্ঠা থেকে পুনরায় মুদ্রিত http://jamiethompson.co.uk/web/2008/06/17/publish-subscribe-with-jquery/ http://web.archive.org/web- এ সংরক্ষণাগারভুক্ত সংস্করণের ভিত্তিতে /20130120010146/http://jamiethompson.co.uk/web/2008/06/17/publish-subscribe-with-jquery/ )


JQuery সহ প্রকাশ / সাবস্ক্রাইব করুন

জুন 17, 2008

গুগল গিয়ার্সের অফলাইন কার্যকারিতার সাথে সংহত জ্যাকুয়ারি ইউআই লেখার দৃশ্যে আমি jQuery ব্যবহার করে নেটওয়ার্ক সংযোগের স্থিতির জন্য জরিপ করতে কিছু কোড দিয়ে চেষ্টা করছি।

নেটওয়ার্ক সনাক্তকরণ অবজেক্ট

প্রাথমিক ভিত্তি খুব সহজ। আমরা একটি নেটওয়ার্ক সনাক্তকরণ অবজেক্টের একটি উদাহরণ তৈরি করি যা নিয়মিত বিরতিতে কোনও ইউআরএল পোল করে। এই এইচটিটিপি অনুরোধগুলি যদি ব্যর্থ হয় তবে আমরা ধরে নিতে পারি যে নেটওয়ার্ক সংযোগটি হারিয়ে গেছে, বা বর্তমান সময়ে সার্ভারটি কেবল অ্যাক্সেসযোগ্য।

$.networkDetection = function(url,interval){
    var url = url;
    var interval = interval;
    online = false;
    this.StartPolling = function(){
        this.StopPolling();
        this.timer = setInterval(poll, interval);
    };
    this.StopPolling = function(){
        clearInterval(this.timer);
    };
    this.setPollInterval= function(i) {
        interval = i;
    };
    this.getOnlineStatus = function(){
        return online;
    };
    function poll() {
        $.ajax({
            type: "POST",
            url: url,
            dataType: "text",
            error: function(){
                online = false;
                $(document).trigger('status.networkDetection',[false]);
            },
            success: function(){
                online = true;
                $(document).trigger('status.networkDetection',[true]);
            }
        });
    };
};

আপনি এখানে ডেমো দেখতে পারেন। অফলাইনে কাজ করতে আপনার ব্রাউজারটি সেট করুন এবং দেখুন কি ঘটে…। না, এটা খুব উত্তেজনাপূর্ণ নয়।

ট্রিগার এবং বাইন্ড

কী উত্তেজনাপূর্ণ যদিও (বা কমপক্ষে আমাকে উত্তেজনাপূর্ণ করে তোলে) হ'ল পদ্ধতিটি যা অ্যাপ্লিকেশনের মাধ্যমে স্থিতিটি রিলে হয়। আমি jQuery এর ট্রিগার এবং বাইন্ড পদ্ধতি ব্যবহার করে একটি পাব / সাব সিস্টেম প্রয়োগের একটি বৃহত আলোচিত-আলোচিত পদ্ধতিতে হোঁচট খেয়েছি।

ডেমো কোডটি যতটা প্রয়োজন তার চেয়ে বেশি অবচেতন। নেটওয়ার্ক সনাক্তকরণ অবজেক্ট দস্তাবেজগুলিতে 'স্থিতি' ইভেন্টগুলি প্রকাশ করে যা তাদের জন্য সক্রিয়ভাবে শ্রবণ করে এবং ফলস্বরূপ সমস্ত গ্রাহকদের কাছে 'বিজ্ঞপ্তি' ইভেন্টগুলি প্রকাশ করে (পরবর্তীতে তাদের আরও কিছু)। এর পিছনে যুক্তিটি হ'ল সত্যিকারের বিশ্ব প্রয়োগে 'নোটিফাই' ইভেন্টগুলি কখন এবং কীভাবে প্রকাশিত হবে সম্ভবত আরও কিছু যুক্তি নিয়ন্ত্রণ করতে পারে।

$(document).bind("status.networkDetection", function(e, status){
    // subscribers can be namespaced with multiple classes
    subscribers = $('.subscriber.networkDetection');
    // publish notify.networkDetection even to subscribers
    subscribers.trigger("notify.networkDetection", [status])
    /*
    other logic based on network connectivity could go here
    use google gears offline storage etc
    maybe trigger some other events
    */
});

JQuery এর DOM কেন্দ্রিক পদ্ধতির ইভেন্টগুলি DOM উপাদানগুলিতে (ট্রিগারযুক্ত) প্রকাশিত হয়। এটি সাধারণ ইভেন্টগুলির জন্য উইন্ডো বা দস্তাবেজ অবজেক্ট হতে পারে বা আপনি কোনও নির্বাচক ব্যবহার করে একটি jQuery অবজেক্ট তৈরি করতে পারেন। ডেমোটি নিয়ে আমি যে পদ্ধতি গ্রহণ করেছি তা হ'ল গ্রাহকগণকে সংজ্ঞায়িত করার জন্য প্রায় নাম স্পিডে দৃষ্টিভঙ্গি তৈরি করা।

DOM উপাদানগুলি যা গ্রাহক হতে হবে কেবল তাদের "গ্রাহক" এবং "নেটওয়ার্ক ডিটেকশন" দিয়ে শ্রেণিবদ্ধ করা হয়। তারপরে আমরা কেবলমাত্র এই উপাদানগুলিতে ইভেন্টগুলি প্রকাশ করতে পারি (যার মধ্যে ডেমোতে কেবল একটি থাকে) একটি বিজ্ঞপ্তি ইভেন্ট চালু করে$(“.subscriber.networkDetection”)

#notifierDIV আছে যা অংশ .subscriber.networkDetectionগ্রাহক গ্রুপ তখন একটি বেনামী ফাংশন এটা করতে বাধ্য, কার্যকরীভাবে একটি শ্রোতা হিসাবে অভিনয় করেছেন।

$('#notifier').bind("notify.networkDetection",function(e, online){
    // the following simply demonstrates
    notifier = $(this);
    if(online){
        if (!notifier.hasClass("online")){
            $(this)
                .addClass("online")
                .removeClass("offline")
                .text("ONLINE");
        }
    }else{
        if (!notifier.hasClass("offline")){
            $(this)
                .addClass("offline")
                .removeClass("online")
                .text("OFFLINE");
        }
    };
});

সুতরাং, আপনি সেখানে যান। এটি সবই সুন্দর ভার্জোজ এবং আমার উদাহরণটি মোটেও আকর্ষণীয় নয়। এটি এই পদ্ধতিগুলির সাথে আপনি করতে পারেন এমন আকর্ষণীয় কিছুও প্রদর্শন করে না তবে উত্সটি খনন করতে আগ্রহী যদি কেউ নির্দ্বিধায় থাকেন। সমস্ত কোড ডেমো পৃষ্ঠার শিরোনামে ইনলাইন


খুব খুশী হয়ে আমি যা খুঁজছিলাম তিনি সম্ভবত সঠিক যে এটি যাবার উপায়, তবে আমি ভাবতে ভাবতে সহায়তা করতে পারি না jquery এর আরও কার্যকরভাবে পরিচালনা করার জন্য হয় সরাসরি সমর্থন বা প্লাগইন প্রয়োজন। আমি কিছুক্ষণ অপেক্ষা করব এবং আমি উত্তরটি পতাকাঙ্কিত করার আগে সমস্যার কিছু আছে কিনা তা দেখতে পাচ্ছি :)
পার হর্নশেজ-শিয়েরব্যাক

6
এটি কোথাও কোট? যদি তা হয় তবে দয়া করে আপনার উত্সটি উদ্ধৃত করুন এবং একটি লিঙ্ক প্রদান করুন, যদি তা এখনও বিদ্যমান থাকে।
আরেহ লেইব বৃষ

1
হ্যাঁ এটি উদ্ধৃতি, সম্পাদনা ইতিহাসে এই লিঙ্কটি , বর্তমানে এটি অ্যাক্সেসযোগ্য। সংরক্ষণাগার পৃষ্ঠা এখানে
স্টানো

1
বেন আলমান একটি ছোট (ক্ষুদ্র ক্ষুদ্র ক্ষুদ্র) jQuery পাব সাব প্লাগইন লিখেছেন । এটি অত্যন্ত মার্জিত।
বার্নি

127

স্বীকৃত উত্তরে প্রদত্ত লিঙ্কটি jQuery ব্যবহার করে পাব / সাব সিস্টেমটি প্রয়োগ করার একটি দুর্দান্ত উপায় দেখায় , তবে কোডটি পড়তে কিছুটা অসুবিধা পেয়েছি, সুতরাং এখানে কোডটির আমার সরলীকৃত সংস্করণটি দেওয়া হয়েছে:

http://jsfiddle.net/tFw89/5/

$(document).on('testEvent', function(e, eventInfo) { 
  subscribers = $('.subscribers-testEvent');
  subscribers.trigger('testEventHandler', [eventInfo]);
});

$('#myButton').on('click', function() {
  $(document).trigger('testEvent', [1011]);
});

$('#notifier1').on('testEventHandler', function(e, eventInfo) { 
  alert('(notifier1)The value of eventInfo is: ' + eventInfo);
});

$('#notifier2').on('testEventHandler', function(e, eventInfo) { 
  alert('(notifier2)The value of eventInfo is: ' + eventInfo);
});

10
আমি এই উত্তরটি সত্যিই পছন্দ করি। ট্রিগার () বাইন্ড () (এবং অন) টিতে যে কোনও ডকস পড়তে পারে তবে এই উত্তরটি jquery ব্যবহার করে ইভেন্ট বাস (পাব / সাব সিস্টেম) তৈরির একটি দৃ concrete় উদাহরণ সরবরাহ করে।
23 জুলাই

1
সাবাস। আমার যা জানা দরকার ছিল।
প্যাট্রিক ফিশার

আমি খুঁজে পেয়েছি যে আপনি যদি একটি কাস্টম ইভেন্টটি ট্রিগার করার সময় যদি একটি অ্যারে (যেখানে দৈর্ঘ্য> 1) পাস করেন তবে শ্রোতারা তার যুক্তিতে সমস্ত অ্যারে আইটেম পাবেন, সুতরাং আপনি nসংখ্যার যুক্তি দিয়ে শেষ করবেন ।
vsync

শ্রোতাদের পরিচালনা করে একাধিক যুক্তিগুলির সমাধান:var eventData = [].slice.call(arguments).splice(1)
ভাইসেক

2
# নোটিফায়ার ডামি উপাদান না রেখে এটি করার কোনও উপায় আছে কি? যদি আমার একটি জাভাস্ক্রিপ্ট লাইব্রেরি থাকে এবং কোনও ইভেন্টটি প্রকাশের জন্য কোনও বস্তু চাইত তবে আমি নিশ্চিত হতে পারি না যে পৃষ্ঠায় কী কী উপাদান রয়েছে।
অ্যারোনএলএস

21

আমার মনে হয় তাই .. কাস্টম ইভেন্টগুলিকে 'বাঁধাই' করা সম্ভব (যেমন: http://docs.jquery.com/Events/bind#typedatafn ) থেকে:

 $("p").bind("myCustomEvent", function(e, myName, myValue){
      $(this).text(myName + ", hi there!");
      $("span").stop().css("opacity", 1)
               .text("myName = " + myName)
               .fadeIn(30).fadeOut(1000);
    });
    $("button").click(function () {
      $("p").trigger("myCustomEvent", [ "John" ]);
    });

1
আমি একটি ইভেন্ট বাড়াতে এবং এতে গ্রাহক / শ্রোতাদের ট্রিগার দেওয়ার জন্য একটি উপায় অনুসন্ধান করছি। এটিকে ম্যানুয়ালি ট্রিগার করবেন না যেহেতু উত্থাপিত অবজেক্টটি কারা শুনছে তা জানে না ...
Per Hornshøj-Schierbeck

2
এই কোডটি এটি করে, তাই না? myCustomEventউত্থাপিত হয়, শীর্ষে বাঁধাই একটি শ্রোতা যুক্ত করে।
স্প্রিন্টস্টার

15

আমারও অনুরূপ প্রশ্ন ছিল, তবে আসলে অন্যরকম উত্তর খুঁজছিলাম; আমি একটি কাস্টম ইভেন্ট তৈরি করতে খুঁজছি। উদাহরণস্বরূপ সর্বদা এটি বলার পরিবর্তে:

$('#myInput').keydown(function(ev) {
    if (ev.which == 13) {
        ev.preventDefault();
        // Do some stuff that handles the enter key
    }
});

আমি এটি সংক্ষেপে বলতে চাই:

$('#myInput').enterKey(function() {
    // Do some stuff that handles the enter key
});

ট্রিগার এবং বাইন্ড সম্পূর্ণ গল্পটি বলবেন না - এটি একটি JQuery প্লাগইন। http://docs.jquery.com/Plugins/Authoring

"এন্টারকি" ফাংশনটি jQuery.fn এর সম্পত্তি হিসাবে সংযুক্ত হয়ে যায় - এটি প্রয়োজনীয় কোড:

(function($){
    $('body').on('keydown', 'input', function(ev) {
        if (ev.which == 13) {
            var enterEv = $.extend({}, ev, { type: 'enterKey' });
            return $(ev.target).trigger(enterEv);
        }
    });

    $.fn.enterKey = function(selector, data, fn) {
        return this.on('enterKey', selector, data, fn);
    };
})(jQuery);

http://jsfiddle.net/b9chris/CkvuJ/4/

উপরের এক নব্বইটি হল আপনি লিঙ্ক শ্রোতার মতো কীবোর্ড কীবোর্ড ইনপুটটি পরিচালনা করতে পারেন:

$('a.button').on('click enterKey', function(ev) {
    ev.preventDefault();
    ...
});

সম্পাদনাগুলি: thisহ্যান্ডলারের সঠিক প্রসঙ্গটি যথাযথভাবে পাস করার জন্য, এবং হ্যান্ডলার থেকে jQuery- তে কোনও ফেরতের মান ফিরিয়ে দিতে আপডেট হয়েছে (উদাহরণস্বরূপ আপনি ইভেন্টটি বাতিল করতে এবং বুদবুদ করতে চেয়েছিলেন)। কী কোড এবং ইভেন্ট বাতিল করার ক্ষমতা সহ হ্যান্ডলারের কাছে একটি উপযুক্ত জিকুয়ের ইভেন্ট ইভেন্ট অবজেক্টকে আপডেট করার জন্য আপডেট করা হয়েছে।

ওল্ড জেএসফিডাল: http://jsfiddle.net/b9chris/VwEb9/24/


ক্রিস - ফাংশনটি নিখুঁতভাবে কাজ করেছে .. কেবলমাত্র কাজটিই কাজ করছে না এই ভেরিয়েবলটি অ্যাক্সেস করা হচ্ছে .. আমি এটি eCurrentTarget ব্যবহার করে এটি অ্যাক্সেস করতে সক্ষম হয়েছি .. তবে আরও কার্যকর উপায় আছে কিনা তা ভাবছিলাম।
Addy

Bu বাগে ভাল ধরা। হ্যাঁ, আপনি যদি হ্যান্ডলার থেকে 5 লাইন পরিবর্তন করেন (ev); টু: হ্যান্ডলার.সকল (এটি, ইভ); তারপরে এই যুক্তিটি সাধারণভাবে যেমন স্ট্যান্ডার্ড জিকোয়ারি ইভেন্ট হ্যান্ডলারগুলিতে হয় তেমন। jsfiddle.net/b9chris/VwEb9
ক্রিস মোসচিনি

এটিকে অন্যভাবে কার্যকর করার কোনও উপায় আপনি কী জানেন? আমি এই উদাহরণটি ব্যবহার করার চেষ্টা করছি তবে সাথে scroll, যা প্রচার করে না। আমি মনে করি শ্রোতাদের শরীরে onকঠোরভাবে সংযুক্ত করার পরিবর্তে, ইভেন্টটি নিজেই চালিত করার জন্য আমার কাছে এমন উপাদানগুলির প্রয়োজন রয়েছে যাঁদের আগস্টে আবদ্ধ ছিল।
গস্ট ভ্যান ডি ওয়াল

গোস্ট আমি যে দৃশ্যের বিষয়ে জিজ্ঞাসা করছি সে সম্পর্কে আমি অনিশ্চিত; কোড নমুনা সহ একটি প্রশ্ন হিসাবে সেরা জিজ্ঞাসা করা যেতে পারে?
ক্রিস মোছচিনি

9

এটি একটি পুরানো পোস্ট, তবে আমি এটি একটি নতুন তথ্য দিয়ে আপডেট করার চেষ্টা করব।

কাস্টম ইভেন্টগুলি ব্যবহার করতে আপনাকে এটিকে কিছু ডিওএম উপাদানকে আবদ্ধ করতে হবে এবং এটি ট্রিগার করতে হবে। সুতরাং আপনি ব্যবহার করা প্রয়োজন

.on () পদ্ধতিটি একটি ইভেন্টের ধরণ এবং একটি ইভেন্ট হ্যান্ডলিং ফাংশনকে আর্গুমেন্ট হিসাবে গ্রহণ করে। Allyচ্ছিকভাবে, এটি ইভেন্ট যুক্ত ডেটাটিকে দ্বিতীয় যুক্তি হিসাবে গ্রহণ করতে পারে, ইভেন্ট হ্যান্ডলিংয়ের ফাংশনটিকে তৃতীয় আর্গুমেন্টের দিকে ঠেলে দেয়। যে কোনও ডেটা পাস হয়েছে তা ইভেন্ট অবজেক্টের ডেটা সম্পত্তিতে ইভেন্ট হ্যান্ডলিং ফাংশনে উপলব্ধ থাকবে। ইভেন্ট হ্যান্ডলিং ফাংশন সর্বদা ইভেন্টের বিষয়টিকে তার প্রথম যুক্তি হিসাবে গ্রহণ করে।

এবং

.trigger () পদ্ধতিটি তার তর্ক হিসাবে ইভেন্টের ধরণ নেয় takes Allyচ্ছিকভাবে, এটি মানগুলির একটি অ্যারেও নিতে পারে। এই মানগুলি ইভেন্ট অবজেক্টের পরে আর্গুমেন্ট হিসাবে ইভেন্ট হ্যান্ডলিং ফাংশনে স্থান পাবে।

কোডটি এর মতো দেখাচ্ছে:

$(document).on("getMsg", {
    msg: "Hello to everyone",
    time: new Date()
}, function(e, param) {
    console.log( e.data.msg );
    console.log( e.data.time );
    console.log( param );
});

$( document ).trigger("getMsg", [ "Hello guys"] );

সুন্দর ব্যাখ্যা এখানে এবং এখানে পাওয়া যাবে । কেন এটি সঠিকভাবে কার্যকর হতে পারে? টুইটার ইঞ্জিনিয়ারের এই দুর্দান্ত ব্যাখ্যায় কীভাবে এটি ব্যবহার করবেন তা আমি খুঁজে পেয়েছি

পিএস সরল জাভাস্ক্রিপ্টে আপনি নতুন কাস্টম ইভেন্ট দিয়ে এটি করতে পারেন তবে আইই এবং সাফারি সমস্যা থেকে সাবধান থাকুন।


3

আমি কীভাবে কাস্টম ইভেন্টগুলি লেখি তা এখানে:

var event = jQuery.Event('customEventName');
$(element).trigger(event);

মঞ্জুর, আপনি সহজভাবে করতে পারেন

$(element).trigger('eventname');

তবে আমি যেভাবে লিখেছি তা আপনাকে ব্যবহারকারী ডিফল্ট প্রতিরোধ করেছে কিনা তা সনাক্ত করার অনুমতি দেয় allows

var prevented = event.isDefaultPrevented();

এটি আপনাকে কোনও নির্দিষ্ট ইভেন্টের প্রক্রিয়াজাতকরণ বন্ধ করার জন্য আপনার শেষ-ব্যবহারকারীর অনুরোধ শুনতে শোনার অনুমতি দেয়, যেমন আপনি যদি কোনও ফর্মের একটি বোতাম উপাদান ক্লিক করেন তবে কোনও ত্রুটি থাকলে ফর্মটি পোস্ট করতে চান না।


আমি তখন সাধারণত ঘটনা মত শুনতে

$(element).off('eventname.namespace').on('eventname.namespace', function () {
    ...
});

আবার, আপনি ঠিক করতে পারে

$(element).on('eventname', function () {
    ...
});

তবে আমি সর্বদা এটি কিছুটা অনিরাপদ পেয়েছি, বিশেষত যদি আপনি একটি দলে কাজ করছেন।

নিম্নলিখিতগুলির সাথে কোনও ভুল নেই:

$(element).on('eventname', function () {});

তবে, ধরে নিন যে যাই হোক না কেন কারণেই আমার এই ইভেন্টটি বন্ধ করতে হবে (কোনও অক্ষম বোতামটি কল্পনা করুন)। আমি তখন করতে হবে

$(element).off('eventname', function () {});

এটি eventnameথেকে সমস্ত ইভেন্ট সরিয়ে ফেলবে $(element)। ভবিষ্যতে কেউ এই ইভেন্টটির সাথে কোনও ইভেন্টকে বাঁধবে কিনা তা আপনি জানতে পারবেন না এবং আপনি অজান্তে সেই ইভেন্টটিকেও আবদ্ধ করে রাখবেন

এটি এড়ানোর নিরাপদ উপায় হ'ল আপনার ইভেন্টগুলির নামকরণ করা

$(element).on('eventname.namespace', function () {});

শেষ অবধি, আপনি লক্ষ্য করেছেন যে প্রথম লাইনটি ছিল

$(element).off('eventname.namespace').on('eventname.namespace', ...)

আমি ব্যক্তিগতভাবে সর্বদা ইভেন্টটিকে আবদ্ধ করার আগে সর্বদা আবদ্ধ করে রাখি যাতে নিশ্চিত হয়ে যায় যে একই ইভেন্ট হ্যান্ডলারটি একাধিকবার ডাকে না (ধারণা করুন এটি কোনও পেমেন্ট ফর্মের জমা বোতাম ছিল এবং ইভেন্টটি 5 বার আবদ্ধ ছিল)


সুন্দর পদ্ধতির নেমস্পেসের জন্য +1।
অরব্রত
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.