কীভাবে jQuery এর সাথে ডিফল্ট লিঙ্ক ক্লিক আচরণ বন্ধ করবেন


89

আমার একটি ওয়েব পৃষ্ঠায় একটি লিঙ্ক আছে। যখন কোনও ব্যবহারকারী এটি ক্লিক করে, পৃষ্ঠার একটি উইজেট আপডেট করা উচিত। তবে, আমি কিছু করছি, কারণ ঘটনার আগুনের আগে ডিফল্ট কার্যকারিতা (ভিন্ন পৃষ্ঠায় নেভিগেট করা) ঘটে।

লিঙ্কটি দেখতে এটির মতো:

<a href="store/cart/" class="update-cart">Update Cart</a>

JQuery এর মত দেখাচ্ছে:

$('.update-cart').click(function(e) { 
  e.stopPropagation(); 
  updateCartWidget(); 
});

সমস্যাটা কি?


উত্তর:


138
e.preventDefault();

https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault থেকে

ইভেন্টটির আরও প্রচার বন্ধ না করে ইভেন্ট বাতিল করা হলে ইভেন্টটিকে বাতিল করে।


7
ধন্যবাদ, আমি পেয়েছিলাম stopPropagationএবং preventDefaultবিভ্রান্ত
হয়েছি

36
$('.update-cart').click(function(e) {
    updateCartWidget();
    e.stopPropagation();
    e.preventDefault();
});

$('.update-cart').click(function() {
    updateCartWidget();
    return false;
});

নিম্নলিখিত পদ্ধতিগুলি একই জিনিস অর্জন করে।


কেন আমি কল করতে হবে stopPropagation()এবং preventDefault()?
স্মার্টকাভম্যান

4
জনাথনসের উত্তর দেখুন, তিনি প্রতিটি ফাংশন কী করে তা ব্যাখ্যা করে। তবে মূলত, আপনি সুনির্দিষ্টভাবে ক্লিক করেছেন যে ক্লিকটি পরে অন্য কারও দ্বারা পরিচালিত হচ্ছে না তা নিশ্চিত করে।
পিটার

30

আপনি e.preventDefault()ডিফল্ট কার্যকারিতা সংঘটিত হতে আটকাতে চান ।

বা return falseআপনার পদ্ধতি থেকে আছে ।

preventDefaultডিফল্ট কার্যকারিতা stopPropagationরোধ করে এবং ইভেন্টটিকে ধারক উপাদানগুলিতে বুদবুদ হওয়া থেকে বাধা দেয়।



1

এই কোডটি সমস্ত ইভেন্ট শ্রোতাদের স্ট্রিপ করে

var old_element=document.getElementsByClassName(".update-cart");    
var new_element = old_element.cloneNode(true);
old_element.parentNode.replaceChild(new_element, old_element);  
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.