Можно ли реагировать на клик только тогда, когда пользователь не выделяет текст, подобный facebook, в окнах чата?
$("#wrapper").on("click", '.content', $.proxy(function(e) {
// if ($(e.currentTarget).isHighlighted()) return false;
}, this));
Внутри вашего обработчика click
вы можете проверить, есть ли у документа какой-либо выбор:
$("#wrapper").on("click", function() {
if(!document.getSelection().toString().length) {
console.log("No selection made");
}
});
Вот сценарий вышесказанного.
Если вам нужно, чтобы он работал в IE8, вам нужно будет использовать document.selection
.
document.selection
Да, это возможно.
Вы можете использовать API выбора и заботиться о совместимости между браузерами.
$("#wrapper").on("click", '.content', $.proxy(function(e) {
var selection = window.getSelection();
if (selection && selection.containsNode(e.target)) {//selection contains event target
return false;
}
}, this));
Чтобы быть более точным, вы можете проверить, является ли focusNode
или anchorNode
целью события.