首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery mouseup + not,不工作

jquery mouseup + not,不工作
EN

Stack Overflow用户
提问于 2012-01-01 06:10:29
回答 2查看 1.4K关注 0票数 0

http://jsfiddle.net/xQKNh/6/

这是我的代码,我想要在鼠标向上选择单词,除了一些iddiv

我试过了:

$("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的最好方法是什么呢?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-01 06:13:36

由于mouseup事件是冒泡的,您只需选择<div>,然后使用e.stopPropagation()有选择地从#protected中筛选出事件,以停止冒泡。See jsFiddle.

代码语言:javascript
复制
$("#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)

票数 4
EN

Stack Overflow用户

发布于 2012-01-01 06:25:06

另一种方式:

代码语言:javascript
复制
$(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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8690824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档