这是我的代码,我想在mouseup上选择单词,div
除了id
之外的其他单词。
我试过了:
$("body:not(#protect)").mouseup(function() {
$("body").not("#protect").mouseup(function() {
$("body:not('#protect')").mouseup(function() {
但not.selection
不适用于$('body').mouseup
。
BTW,在我的主页面中,选择区域不仅仅是div#content-area
,只是针对问题,我留下了一个div
进行测试。
那么通过jquery保护全身鼠标中的一个div的最佳方法是什么?感谢。
答案 0 :(得分:4)
由于mouseup
个事件冒泡,您只需选择<div>
,然后使用#protected
选择性地从e.stopPropagation()
过滤出事件以停止冒泡。 See jsFiddle.
$("#content-area").mouseup(function() {
var selection = getSelected();
if(selection && (selection = selection.toString().replace(/^\s+|\s+$/g, ''))) {
$('#show-text').html(selection)
}
});
$("#protect").mouseup(function(e) {
e.stopPropagation();
});
You could cancel the selection, too.
P.S。您应该使用obj.toString()
或String(obj)
代替new String(obj)
。
答案 1 :(得分:1)
另一种方式:
$(document).ready(function() {
$("body").mouseup(function(e) {
if (e.target.id != 'protect') {
var selection = getSelected();
if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
$('#show-text').html(selection)
}
}
});
});