কীভাবে JQuery এর সাথে "অনক্লিক" অপসারণ করবেন?


101

পিএইচপি কোড:

<a id="a$id" onclick="check($id,1)" href="javascript:void(0)"  class="black">Qualify</a>

onclick="check($id,1)লিঙ্কটি ক্লিক করা যায় না বা " check($id,1)বরখাস্ত করা হবে না " তাই আমি মুছে ফেলতে চাই J

উত্তর:


243

ওল্ড ওয়ে (প্রাক-1.7):

$("...").attr("onclick", "").unbind("click");

নতুন উপায় (1.7+):

$("...").prop("onclick", null).off("click");

(আপনার নির্বাচকটির সাথে প্রতিস্থাপন করুন ...)


26
এটি অপসারণযোগ্য ('অনক্লিক') হওয়া উচিত নয়?
রোটিন মার্থ

হ্যাঁ, ভাল পয়েন্ট, পরিষ্কার হতে পারে তবে আমি নিশ্চিত নই যে এটি কার্যকর করার দৃষ্টিকোণ থেকে আলাদা হবে।
glmxndr

6
JQuery 1.7+ এর সাথে আপনি অন / অফ ব্যবহার করতে পারেন: stackoverflow.com/questions/209029/…
ল্যান্স ক্লিভল্যান্ড

6
অপসারণের প্রথম মন্তব্যটি দেখুন api.jquery.com/removeattr Removing an inline onclick event handler using .removeAttr() doesn't achieve the desired effect in Internet Explorer 6, 7, or 8. To avoid potential problems, use .prop() instead
andyface

4
@ এবং আঞ্চলিক হ্যাঁ এটি ডকুমেন্টেশনের মধ্যে রয়েছে, তবে .prop()আইই 11 এর জন্য আমাকেও ব্যবহার করতে হয়েছিল।
onetwo12

58

আমি জানি এটি বেশ পুরানো, তবে যখন কোনও হারিয়ে যাওয়া অপরিচিত ব্যক্তি এই প্রশ্নটির উত্তর খুঁজছেন (যেমন আমি করেছি) তখন এটি অপসারণের পরিবর্তে এটি করার সবচেয়ে ভাল উপায় ():

$element.prop("onclick", null);

JQuerys অফিসিয়াল doku উদ্ধৃত :

"ইন্টারনেট ব্যবহারকারীর এক্সপ্লোরার 6, 7, বা 8 এ ব্যবহার করে একটি ইনলাইন অন্লিক ইভেন্ট হ্যান্ডলার অপসারণ করা সম্ভাব্য সমস্যাগুলি অর্জন করতে পারে না, পরিবর্তে .প্রপ () ব্যবহার করুন"


4
আমি দেখতে পেয়েছি যে আপনি যখন এ জাতীয় টাইপ করেন তখন অন্লিক ইভেন্টটি কীভাবে সরিয়ে ফেলা যায় এটি সেরা। <span onlick="method()">sometext>/span>ইভেন্টটি সম্পূর্ণরূপে আবদ্ধ এবং দুর্দান্ত কাজ করে
zdarsky.peter

4
আমি মনে করি না এটি সবচেয়ে ভাল উপায়। jsfiddle.net/TN2wr বনাম jsfiddle.net/TN2wr/1
গাস

আমি ১.6 এর চেয়ে বেশি বয়স্ক একটি জিকিউ ব্যবহার করছি তাই $ (উপাদান) .attr ('অনক্লিক', নাল); আমার জন্য কাজ কর.
metamagikum

18

onclickসম্পত্তি সরানো হচ্ছে

মনে করুন আপনি নিজের ক্লিক ইভেন্টটিকে ইনলাইন যুক্ত করেছেন:

<button id="myButton" onclick="alert('test')">Married</button>

তারপরে, আপনি ইভেন্টটি এভাবে মুছে ফেলতে পারেন:

$("#myButton").prop('onclick', null); // Removes 'onclick' property if found

clickইভেন্ট শ্রোতাদের সরানো হচ্ছে

মনে করুন আপনি কোনও ইভেন্ট শ্রোতার সংজ্ঞা দিয়ে আপনার ক্লিক ইভেন্টটি যুক্ত করেছেন:

$("button").on("click", function() { alert("clicked!"); });

... বা এটি পছন্দ:

$("button").click(function() { alert("clicked!"); });

তারপরে, আপনি ইভেন্টটি এভাবে মুছে ফেলতে পারেন:

$("#myButton").off('click');          // Removes other events if found

উভয় অপসারণ করা হচ্ছে

আপনার ইভেন্টটি কীভাবে যুক্ত করা হয়েছে তা যদি আপনি অনিশ্চিত থাকেন তবে আপনি উভয়কেই এইভাবে সংযুক্ত করতে পারেন:

$("#myButton").prop('onclick', null)  // Removes 'onclick' property if found
              .off('click');          // Removes other events if found



5

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

তারপরে আমার জাভাস্ক্রিপ্টে আমি একটি ইনলাইন অনক্লিক হ্যান্ডলার যুক্ত করতে নিম্নলিখিতটি ব্যবহার করেছি:

$(element).attr('onclick','myFunction()');

জাভাস্ক্রিপ্ট থেকে পরবর্তী সময়ে এটি মুছে ফেলার জন্য আমি নিম্নলিখিতটি ব্যবহার করেছি:

$(element).prop('onclick',null);

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


আমি এটি পছন্দ করি তবে কেন একজন প্রপ এবং অন্য এটার হবে?
স্টাচু

আমি নিশ্চিত নই, তবে আমি যেভাবে দেখছি তা হ'ল অ্যাটারের সাথে আপনি যুক্ত myFunction () এবং প্রপ ('অনক্লিক', নাল) এর সাথে অনক্লিক হ্যান্ডলার যুক্ত / ইনজেক্ট করুন বৈশিষ্ট্যটি সরান, সুতরাং কোনও ফাংশন বলা হবে না। এটি আমার পক্ষে এভাবে কাজ করেছিল। এবং আমি লক্ষ করতে পারি যে কীভাবে উপাদানটির অ্যাট্রিকের মাধ্যমে অন্লিক হ্যান্ডলার ছিল এবং কীভাবে প্রপসের পরে এটি সরানো হয়েছিল।
bboydflo

4
ভবিষ্যতে উল্লেখের জন্য, আপনি কি সত্যিই ব্যবহার করা উচিত .on('click', myFunction)(নোট যে myFunctionহয় না উদ্ধৃতির মধ্যে) এবং তারপর পরে.off('click')
JDB এখনও মনিকা স্মরণ

2

অনক্লিক ইভেন্টটি যদি সরাসরি উপাদানটিতে না থেকে থাকে তবে মূল উপাদান থেকে হয় তবে কী হবে? এই কাজ করা উচিত:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});

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

0

আপনি যদি অনক্লিক ইভেন্টটি আইডি দ্বারা আবদ্ধ করেন তবে এটি ব্যবহার করুন:

$('#youLinkID').attr('onclick','').unbind('click');

আপনি যদি ক্লাস তারপরে অনক্লিক ইভেন্টটি আবদ্ধ করেন তবে এটি ব্যবহার করুন:

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