আমি কীভাবে jQuery এর "হোভার" আনবাইন্ড করব?
এটা কাজ করে না:
$(this).unbind('hover');
আমি কীভাবে jQuery এর "হোভার" আনবাইন্ড করব?
এটা কাজ করে না:
$(this).unbind('hover');
উত্তর:
$(this).unbind('mouseenter').unbind('mouseleave')
বা আরও সংক্ষেপে (ধন্যবাদ চাদ গ্রান্ট ):
$(this).unbind('mouseenter mouseleave')
প্রকৃতপক্ষে, jQuery ডকুমেন্টেশনের উপরে দেখানো শৃঙ্খলাবদ্ধ উদাহরণগুলির চেয়ে আরও সহজ পন্থা রয়েছে (যদিও তারা ঠিক কাজ করবে):
$("#myElement").unbind('mouseenter mouseleave');
JQuery 1.7 হিসাবে, আপনি ব্যবহার করতে সক্ষম হন $.on()এবং $.off()ইভেন্ট বন্ডিংয়ের জন্য, তাই হোভার ইভেন্টটি আবদ্ধ করতে আপনি আরও সহজ এবং পরিপাটি ব্যবহার করবেন:
$('#myElement').off('hover');
সিউডো-ইভেন্ট-নাম "হোভার" শর্টহ্যান্ড হিসাবে "মাউসেন্টার মাউসলেভ" হিসাবে ব্যবহৃত হয় তবে পূর্ববর্তী jQuery সংস্করণগুলিতে আলাদাভাবে পরিচালিত হয়েছিল; আপনাকে আক্ষরিক ইভেন্টের প্রতিটি নাম স্পষ্টভাবে মুছে ফেলতে হবে। $.off()এখন ব্যবহার করা আপনাকে একই শর্টহ্যান্ড ব্যবহার করে উভয় মাউস ইভেন্ট ড্রপ করতে দেয়।
২০১ Edit সম্পাদনা করুন:
এখনও একটি জনপ্রিয় প্রশ্ন তাই এটি এর মনোযোগ আকর্ষণ মূল্য @ Dennis98 এর jQuery এর 1.9+ যে নীচের মন্তব্য বিন্দু, "হোভার" ঘটনা অবচিত মান "mouseenter mouseleave" কল পক্ষে। সুতরাং আপনার ইভেন্টের বাধ্যবাধকতার ঘোষণাটি এখন দেখতে হবে:
$('#myElement').off('mouseenter mouseleave');
$.off("hover")কাজ করে না। যাইহোক, উভয় ইভেন্ট ব্যবহার দুর্দান্ত কাজ করে।
$.off()এখনও আছে, এটি বর্তমানে আনবাইন্ডিং ইভেন্টগুলির প্রস্তাবিত পদ্ধতি। এখন হিসাবে আপনার লিখতে হবে $(element).off("mouseenter mouseleave");।
আবদ্ধমুক্ত mouseenterএবং mouseleaveঘটনা আলাদাভাবে বা আবদ্ধমুক্ত উপাদান (গুলিতে) সমস্ত ঘটনা।
$(this).unbind('mouseenter').unbind('mouseleave');
অথবা
$(this).unbind(); // assuming you have no other handlers you want to keep
আরেকটি সমাধান হ'ল লাইভ () এর সাথে সংযুক্ত ইভেন্টগুলির জন্য .die () ।
প্রাক্তন .:
// attach click event for <a> tags
$('a').live('click', function(){});
// deattach click event from <a> tags
$('a').die('click');
আপনি এখানে একটি ভাল রেফারেন্স খুঁজে পেতে পারেন: jQuery .live () এবং .die () অন্বেষণ
(আমার ইংরাজির জন্য দুঃখিত: ">)
সমস্ত হোভার পর্দার পিছনে করছে মাউসওভার এবং মাউসআউট বৈশিষ্ট্যের সাথে আবদ্ধ। আমি পৃথকভাবে এই ইভেন্টগুলি থেকে আপনার ফাংশনগুলি আবদ্ধ এবং আবদ্ধ করব।
উদাহরণস্বরূপ, বলুন আপনার নীচের এইচটিএমএল রয়েছে:
<a href="#" class="myLink">Link</a>
তাহলে আপনার jQuery হবে:
$(document).ready(function() {
function mouseOver()
{
$(this).css('color', 'red');
}
function mouseOut()
{
$(this).css('color', 'blue');
}
// either of these might work
$('.myLink').hover(mouseOver, mouseOut);
$('.myLink').mouseover(mouseOver).mouseout(mouseOut);
// otherwise use this
$('.myLink').bind('mouseover', mouseOver).bind('mouseout', mouseOut);
// then to unbind
$('.myLink').click(function(e) {
e.preventDefault();
$('.myLink').unbind('mouseover', mouseOver).unbind('mouseout', mouseOut);
});
});
আপনি onব্যবহার করে সংযুক্ত একটি নির্দিষ্ট ইভেন্ট হ্যান্ডলারটি সরাতে পারেনoff
$("#ID").on ("eventName", additionalCss, handlerFunction);
// to remove the specific handler
$("#ID").off ("eventName", additionalCss, handlerFunction);
এটি ব্যবহার করে, আপনি কেবল হ্যান্ডলারের কাজটি সরিয়ে ফেলবেন
আরেকটি ভাল অনুশীলন, একাধিক সংযুক্ত ইভেন্টের জন্য একটি নেমস্পেস সেট করা
$("#ID").on ("eventName1.nameSpace", additionalCss, handlerFunction1);
$("#ID").on ("eventName2.nameSpace", additionalCss, handlerFunction2);
// ...
$("#ID").on ("eventNameN.nameSpace", additionalCss, handlerFunctionN);
// and to remove handlerFunction from 1 to N, just use this
$("#ID").off(".nameSpace");
আমি এটি হোভার () এর দ্বিতীয় আর্গুমেন্ট (ফাংশন) হিসাবে কাজ করেছি
$('#yourId').hover(
function(){
// Your code goes here
},
function(){
$(this).unbind()
}
});
প্রথম ফাংশন (.hover () এর যুক্তি) হ'ল মাউসওভার এবং আপনার কোডটি কার্যকর করবে। দ্বিতীয় যুক্তি হ'ল মাউসআউট যা # আপনার আইডি থেকে হোভার ইভেন্টটি আবদ্ধ করবে। আপনার কোডটি একবারেই কার্যকর করা হবে।
$.unbind()নিজের মতো করে object বস্তু থেকে সমস্ত ঘটনা সরিয়ে দেবে না? আপনার $.click()ইভেন্টগুলির মতো জিনিসগুলি এখন ব্যর্থ হবে, তাই না?