在函数的jquery中使用:not选择器

use the :not selector in jquery on function

本文关键字:not 选择器 函数 jquery      更新时间:2023-09-26

我有一个方法,一次点击,一次更改

$('html').on('click', 'html:not(select, textarea)', function( event ) {
$('html').on('change', 'html:not(button)', function( event ) {

比如:not jquery文档说:not(这将被排除在外),但我的代码不工作

有人有一个好的解决方案或看到错误吗

这是完整的代码块

$('html').on('click', 'html:not(select, textarea)', function( event ) {
    event.preventDefault();
    var elementId = event.target.id;
    app.callController(elementId);
});

感谢

html:not(select, textarea)

如果这是CSS,那么这将是一个语法错误。:not()只能容纳一个简单的选择器。jQuery允许使用更复杂的选择器,但仍然存在下一个示例中描述的问题:

html:not(button)

这意味着不是<button>元素的<html>元素…这与html相同,因为任何元素都不会同时具有两种类型。

大概你实际上在寻找:

:not(select):not(textarea)

:not(button)

由于您本质上是将处理程序绑定到每个元素(select和textarea除外),并且您将其作为委托事件处理,因此实际上不需要编写更复杂的委托事件处理程序语法;只需将处理程序直接绑定到'html',然后等待事件冒泡:

$('html').click(function(e) {
    if ($(e.target).is("select, textarea")) {
        return;
    }
    e.preventDefault();
    var elementId = e.target.id;
    app.callController(elementId);
});