অনক্লিক ইভেন্টে একাধিক জাভাস্ক্রিপ্ট ফাংশন কীভাবে কল করবেন?


241

onclickএকাধিক জাভাস্ক্রিপ্ট ফাংশন কল করার জন্য এইচটিএমএল বৈশিষ্ট্যটি ব্যবহার করার কোনও উপায় আছে কি ?


উত্তর:


390
onclick="doSomething();doSomethingElse();"

তবে সত্যিই, আপনি onclickনিজের জাভাস্ক্রিপ্ট কোডের মাধ্যমে ডেম নোডের সাথে ইভেন্ট হ্যান্ডলারটি সংযুক্ত না করেই ভাল । এটি আপত্তিজনক জাভাস্ক্রিপ্ট হিসাবে পরিচিত ।


1
আপত্তিজনক জেএস-এর উল্লেখের জন্য ধন্যবাদ, আমি এর আগেও এসেছি এবং আমি অলস কারণেই আমার বাধা লেখার থেকে বিরত থাকা উচিত! এক্সডি
কিউকম

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

4
যদি অনক্লিকের কোনও অ্যাকশন ব্যর্থ হয় তবে পুরো জিনিসটি ডোমিনো চেইনের মতো হয়ে যায় এবং অনক্লিক কাজ করতে ব্যর্থ হয়।
ফায়াসকো ল্যাবগুলি

8
এই এইচটিএমএল বৈশিষ্ট্যটি আসলে onclick=""তা নয় onClick=""। এটি খুব সাধারণ ভুল
অঙ্কিত

2
@ শুভচোপড়া আপনি যে বিষয়ে কথা বলছেন তা jsxনয় htmlএবং এই প্রশ্নটির সাথে ট্যাগ করা হয়নিjsx
ড্রিউট

75

1 ফাংশন সংজ্ঞায়িত একটি লিঙ্ক

<a href="#" onclick="someFunc()">Click me To fire some functions</a>

থেকে একাধিক ফাংশন চালানো someFunc()

function someFunc() {
    showAlert();
    validate();
    anotherFunction();
    YetAnotherFunction();
}

5
আইএমএইচও, এটিই আসল প্রোগ্রামারের পন্থা।
b1nary.atr0phy

2
@ b1nary.atr0phy নাপ প্রোগ্রামার উপায়টি যখন কোনও ব্যবহারকারীর জাভাস্ক্রিপ্ট না থাকে তার জন্য একটি href = "" বৈশিষ্ট্য যুক্ত করা। তারপরে, জাভাস্ক্রিপ্টের সাহায্যে (যাতে আপনি জানেন যে ব্যবহারকারী এটি সমর্থন করে) আপনি href সরান, এবং ইভেন্ট শ্রোতাদের ইভেন্টে যুক্ত করবেন। এইভাবে, যদি আপনার কোডের অন্য একটি মডিউল একই ক্লিকটি শুনবে, এটি ওভাররাইট করা বা আপনার কোডটিকে ওভাররাইট করে না। পড়ুন: developer.mozilla.org/en-US/docs/Web/API/Event
gcb

3
যদি আপনার কোনও যুক্তি ফাংশনগুলিতে প্রেরণ করা হয় তবে এটি ভালভাবে কাজ করতে পারে না, বিশেষত যদি আপনি কোনও সার্ভার-সাইড ভাষা থেকে এই যুক্তিগুলি তৈরি করেন। সার্ভার এবং ক্লায়েন্ট উভয় ক্ষেত্রেই সমস্ত সম্ভাব্য পুনরাবৃত্তির পরীক্ষা না করে সার্ভার-সাইড ল্যাঙ্গুয়েজে ফাংশনগুলি (কোনও যুক্তি সহ) সংযোজন করে কোডটি তৈরি করা / বজায় রাখা আরও সহজ হবে।
সিফন

এটি এত সুন্দর এবং মার্জিত
টেসারাক্টার

38

আপনি যদি কেবল জাভাস্ক্রিপ্ট ব্যবহার করেন এবং jQuery ব্যবহার না করেন তবে এই কোডটি প্রয়োজনীয়

var el = document.getElementById("id");
el.addEventListener("click", function(){alert("click1 triggered")}, false);
el.addEventListener("click", function(){alert("click2 triggered")}, false);

7
এটি সঠিক উত্তর এবং এটি কীভাবে করবেন তা সঠিক পদ্ধতি হওয়া উচিত।
ফিউশন

11

আমি element.addEventListenerপদ্ধতিটি এটি কোনও ফাংশনের সাথে লিঙ্ক করতে ব্যবহার করব । সেই ফাংশন থেকে আপনি একাধিক ফাংশন কল করতে পারেন।

একটি ইভেন্টকে একটি ফাংশনে আবদ্ধ করার পরে আমি যে সুবিধাটি দেখছি এবং তারপরে একাধিক ফাংশন কল করে তা হ'ল আপনি কিছু ত্রুটি পরীক্ষা করে পরীক্ষা করতে পারেন, কিছু অন্য বিবৃতি আছে যাতে কিছু ফাংশন কেবলমাত্র নির্দিষ্ট মানদণ্ডগুলি পূরণ করা হলে ডাকা হয়।


9

অবশ্যই, এটিতে একাধিক শ্রোতাকে কেবল আবদ্ধ করুন।

Short cutting with jQuery

$("#id").bind("click", function() {
  alert("Event 1");
});
$(".foo").bind("click", function() {
  alert("Foo class");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="foo" id="id">Click</div>


@ হান্টার: আমি jQuery সঙ্গে সংক্ষিপ্ত কাটা ছিল। আমি নেটিভ ইভেন্ট শ্রোতার কোডটি ঠিক মনে করি না। মার্কো যা উল্লেখ করেছেন তা আপনি করতেও পারেন তবে ইভেন্ট শ্রোতাদের ব্যবহার করা আরও ভাল।
জোশ কে

1
মূল প্রশ্নের উত্তর নাও দিতে পারে তবে আমি যেহেতু jQuery ব্যবহার করছি তাই এটি আমার উত্তর দিয়েছে answered
ফায়াস্কো ল্যাবগুলি

1
সরল পুরানো জাভাস্ক্রিপ্ট দিয়ে এটি করার কোনও উপায়?
কোডি বাগস্টাইন


2

var btn = document.querySelector('#twofuns');
btn.addEventListener('click',method1);
btn.addEventListener('click',method2);
function method2(){
  console.log("Method 2");
}
function method1(){
  console.log("Method 1");
}
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Pramod Kharade-Javascript</title>
</head>
<body>
<button id="twofuns">Click Me!</button>
</body>
</html>

আপনি এক বা একাধিক পদ্ধতিতে একটি ইভেন্ট অর্জন / কল করতে পারেন।


1

আপনি onclickএইচটিএমএল-তে এটি দ্বিতীয়বারের মতো থাকলেও এটি কোড দ্বারা একাধিক যুক্ত করতে পারেন এবং তা click2 triggeredকখনই মুদ্রিত হয় না, আপনি ক্রিয়াকলাপে একটি যুক্ত করতে পারেন তবে mousedownএটি কেবল একটি কাজ ound

তাই করণীয় হ'ল সর্বোত্তমভাবে কোড হিসাবে তাদের যুক্ত করা:

var element = document.getElementById("multiple_onclicks");
element.addEventListener("click", function(){console.log("click3 triggered")}, false);
element.addEventListener("click", function(){console.log("click4 triggered")}, false);
<button id="multiple_onclicks" onclick='console.log("click1 triggered");' onclick='console.log("click2 triggered");' onmousedown='console.log("click mousedown triggered");'  > Click me</button>

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


1

এক যোগ, রক্ষণাবেক্ষণযোগ্য জাভাস্ক্রিপ্ট জন্য একটি নামকরণ ফাংশন ব্যবহার করা হয়।

এটি বেনামে ফাংশনের উদাহরণ:

var el = document.getElementById('id');

// example using an anonymous function (not recommended):
el.addEventListener('click', function() { alert('hello world'); });
el.addEventListener('click', function() { alert('another event') });

তবে কল্পনা করুন যে তাদের মধ্যে বেশ কয়েকটি একই উপাদানের সাথে সংযুক্ত রয়েছে এবং সেগুলির একটি অপসারণ করতে চান। Event ইভেন্ট শ্রোতার কাছ থেকে কোনও একক বেনামি ফাংশন সরিয়ে ফেলা সম্ভব নয়।

পরিবর্তে, আপনি নামযুক্ত ফাংশন ব্যবহার করতে পারেন:

var el = document.getElementById('id');

// create named functions:
function alertFirst() { alert('hello world'); };
function alertSecond() { alert('hello world'); };

// assign functions to the event listeners (recommended):
el.addEventListener('click', alertFirst);
el.addEventListener('click', alertSecond);

// then you could remove either one of the functions using:
el.removeEventListener('click', alertFirst);

এটি আপনার কোডটি পড়া এবং বজায় রাখা আরও অনেক সহজ রাখে। বিশেষত যদি আপনার ফাংশন বড় হয়।


আরও তথ্যের জন্য, "টিউটোরিয়াল" অ্যাভেলেক্সের একটি দুর্দান্ত ভিডিও আছে যা আমি এই বিষয়টি সম্পর্কে সুপারিশ করতে পারি: youtube.com/watch?v=7UstS0hsHgI
রেমি

0

আপনি সমস্ত ফাংশনকে একটিতে রচনা করতে এবং সেগুলিতে কল করতে পারেন Ram রামদাজের মতো লাইব্রেরিতে একাধিক ফাংশন রচনা করার জন্য একটি ফাংশন রয়েছে।

<a href="#" onclick="R.compose(fn1,fn2,fn3)()">Click me To fire some functions</a>

অথবা আপনি জেএস ফাইলে একটি পৃথক ফাংশন হিসাবে রচনাটি রাখতে পারেন এবং এটিকে কল করতে পারেন

const newFunction = R.compose(fn1,fn2,fn3);


<a href="#" onclick="newFunction()">Click me To fire some functions</a>

0

এটি ব্র্যাড আনসার বিকল্প - আপনি নিম্নলিখিত হিসাবে কমা ব্যবহার করতে পারেন

onclick="funA(), funB(), ..."

তবে এই পদ্ধতির ব্যবহার না করাই ভাল - ছোট প্রকল্পগুলির জন্য আপনি কেবলমাত্র একটি ফাংশন কলিংয়ের ক্ষেত্রে অনক্লিক ব্যবহার করতে পারেন (আরও: আপডেট বিবাদী জাভাস্ক্রিপ্ট )।

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