Javascript 禁用文本选择上的单击事件
我有以下jQuery,当用户单击td时,它读取td的文本,然后执行重定向。如果用户选择文本而不是单击td,如何禁用单击事件Javascript 禁用文本选择上的单击事件,javascript,jquery,Javascript,Jquery,我有以下jQuery,当用户单击td时,它读取td的文本,然后执行重定向。如果用户选择文本而不是单击td,如何禁用单击事件 $("td").click(function() { var brand = $(this).closest("tr").attr("data-brand"); var url = window.btoa(window.location.toString()); window.location = "?page=sku&action=bran
$("td").click(function() {
var brand = $(this).closest("tr").attr("data-brand");
var url = window.btoa(window.location.toString());
window.location = "?page=sku&action=brand&brand=" + brand + "&b=" + url;
});
在这里,我可以使用一个函数找到它来获取页面所选的文本,如果没有找到选择,请跟随链接,否则什么也不做
$("td").click(function() {
var sel = getSelected().toString();
if (sel === "") {
var brand = $(this).closest("tr").attr("data-brand");
var url = window.btoa(window.location.toString());
window.location = "?page=sku&action=brand&brand=" + brand + "&b=" + url;
}
});
function getSelected() {
if (window.getSelection) {
return window.getSelection().toString();
} else if (document.getSelection) {
return document.getSelection().toString();
} else {
var selection = document.selection && document.selection.createRange();
if (selection.text) {
return selection.text.toString();
}
return "";
}
return "";
}
您可以使用,但它只适用于几年后的表单元素,这个答案仍然有用。不过,我确实有一个问题:getSelected函数的额外复杂性是否可以覆盖较旧的浏览器?如果不需要,为什么需要它呢?我认为这个函数可以更简洁:不需要最后一次返回,“else”块也不需要,只需要在内部和外部编写代码。