在函数的jquery中使用:not selector

时间:2014-09-16 12:51:18

标签: javascript jquery onclick onchange

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

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

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

喜欢:不是jquery文档说,不是(这将被排除),但我的代码没有工作

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

这就是完整的代码块

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

    app.callController(elementId);
});

谢谢

2 个答案:

答案 0 :(得分:1)

html:not(select, textarea)

如果这是CSS,则会出现语法错误。 :not()只能容纳一个简单的选择器。 jQuery允许更复杂的选择器,但是你仍然遇到与下一个例子所描述的相同的问题:

html:not(button)

这意味着 <html>元素不是<button>元素 ...与html相同,因为没有任何元素会在同一时间。

据推测,您实际上在寻找:

:not(select):not(textarea)

:not(button)

答案 1 :(得分:0)

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

$('html').click(function(e) {
    if ($(e.target).is("select, textarea")) {
        return;
    }

    e.preventDefault();
    var elementId = e.target.id;
    app.callController(elementId);
});