根据当前的媒体查询我正在做一个div可点击。如果不匹配max-width:767px,那么我绑定了锚点的url。但如果匹配查询,我不想在点击上做任何事情。有没有办法在其他地方删除它??
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 = ??????
});
}
答案 0 :(得分: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);
}
答案 1 :(得分:0)
如果是这种情况,您无法编辑代码,您可以通过在其后添加相关代码来覆盖功能。
if (window.matchMedia('(max-width: 767px)').matches) {
jQuery(el).removeClass("clickable");
}