7

我有以下 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=brand&brand=" + brand + "&b=" + url;
});
4

2 回答 2

10

在这里,我能够使用此处找到的函数来获取页面的选定文本,如果没有找到选择,请点击链接,否则什么也不做。

$("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 "";
}
于 2013-07-22T17:27:39.747 回答
0

你可以这样做

function getSelected() {
   return (window.getSelection) ? window.getSelection().toString() : document.getSelection().toString();
}
于 2022-02-09T08:13:01.947 回答