2015-10-26 3 views
0

в соответствии с текущим запросом на медиа. Я делаю div, который можно щелкнуть. Если не соответствует max-width: 767px, тогда я связываю URL-адрес якоря. Но если соответствует запросу, я не хочу ничего делать при нажатии. Есть ли способ удалить его на другом ...?Удалите window.location.href из события click

if (!window.matchMedia('(max-width: 767px)').matches) { 
     jQuery(el).addClass("clickable"); 

     jQuery(el).click(function (e) { 
      window.location.href = jQuery(el).find("a").attr("href"); 
     }); 
    }else{ 
     jQuery(el).removeClass("clickable"); 

     jQuery(el).click(function (e) { 
      window.location.href = ?????? 
     }); 
    } 

ответ

1

Вы должны переместить событие щелчка вне условия if - это будет легче справиться.

var result = !window.matchMedia('(max-width: 767px)').matches; 

jQuery(el).click(function (e) { 
    if (result) { 
     window.location.href = jQuery(el).find("a").attr("href"); 
    } 
}).toggleClass("clickable", result); 

Или просто использовать unbind метод:

var clickFunction = function (e) { 
    window.location.href = jQuery(el).find("a").attr("href"); 
}; 

if (!window.matchMedia('(max-width: 767px)').matches) { 
    jQuery(el).addClass("clickable").click(clickFunction); 
} else { 
    jQuery(el).removeClass("clickable").unbind('click', clickFunction); 
} 
+0

hm on else он корректно удаляет класс, который можно щелкнуть, но он по-прежнему перенаправляет меня на клик – user1292656

0

Если это так, вы не можете редактировать код, вы можете переопределить функциональность путем добавления соответствующего кода после него.

if (window.matchMedia('(max-width: 767px)').matches) { 
     jQuery(el).removeClass("clickable"); 
    } 
Смежные вопросы