我有一个方法,一次点击,一次更改
$('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);
});
谢谢
答案 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);
});