[英]jQuery .off (unbind) not working after event.preventDefault()
[英].unbind() is not working on event.preventDefault()
我有一個響應性Javascript文件,該文件在解除對jQuery基本功能的綁定方面能成功工作。
當瀏覽器設置為平板電腦時,導航將基於單擊切換,因此我禁用了鏈接到具有ul的任何li元素的功能。
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
event.preventDefault();
});
然后,當瀏覽器的大小超出平板電腦的限制時,我試圖以此重新啟用鏈接功能(我嘗試了3種不同的方式):
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('on');
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('click');
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
return true;
});
請讓我知道我是否還有其他可以提供的幫助
我可以在這里找到自己的問題的解決方案。 以為我會發布,以防萬一有人遇到類似問題。
我的自適應JavaScript每個屏幕尺寸都有2個功能。 我有這樣的事情:
function tabletInit() {
// add jQuery that is supposed to fire within these constraints
function mobileNavInit() {
var submenus = $('.main-navigation .children');
submenus.each(function() {
var parentLink = $(this).prev(),
parentHref = parentLink.attr('href'),
overview = '<li class="overview"><a href="'+parentHref+'">Overview</a></li>';
$(overview).prependTo($(this));
});
}
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').on('click', function(event) {
event.preventDefault();
});
}
function tabletClear() {
// undo or 'unbind()' anything that should be cancelled out if tablet is sized above
$(overview)unbind('prependTo');
$('.main-navigation .menu > ul > li > a, .main-navigation .menu > ul > li > ul > li:has(ul) > a').unbind('click');
}
干擾是概述功能的解除約束之一。 盡管解除綁定的操作符合需要,但最終干擾了其他一些JavaScript。 所以我只是將其更改為:
$('.overview, .overview2').remove();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.