http://jsfiddle.net/xQKNh/6/
这是我的代码,我想要在鼠标向上选择单词,除了一些id的div。
我试过了:
$("body:not(#protect)").mouseup(function() {
$("body").not("#protect").mouseup(function() {
$("body:not('#protect')").mouseup(function() {
但是not.selection对$('body').mouseup不起作用。
顺便说一句,在我的主页中,选择区域不仅仅是div#content-area,只是为了回答问题,我留下了一个div用于测试。
那么,保护jquery整个身体鼠标向上的div的最好方法是什么呢?谢谢。
发布于 2012-01-01 06:13:36
由于mouseup事件是冒泡的,您只需选择<div>,然后使用e.stopPropagation()有选择地从#protected中筛选出事件,以停止冒泡。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.
附注:您应该使用obj.toString()或String(obj),而不是new String(obj)。
发布于 2012-01-01 06:25:06
另一种方式:
$(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)
}
}
});
});FIDDLE
https://stackoverflow.com/questions/8690824
复制相似问题