实时查询插件不适用于可见属性选择器

Posted

技术标签:

【中文标题】实时查询插件不适用于可见属性选择器【英文标题】:Live query plugin doesn't work with the visible attribute selector 【发布时间】:2010-11-10 13:57:15 【问题描述】:

我在 jquery 就绪函数中运行了以下内容

$('[id$=txtCustomer]:visible').livequery(
       function()  alert('Hello') , 
       function()  alert('World') 
   );

我第一次收到警报说“你好”,但是当我切换文本框的这种可见性时,这些函数没有被调用。

请帮忙。

【问题讨论】:

感谢 Philippe 的格式化 【参考方案1】:

livequery "match/nomatch" 事件不适用于像 ":visible" 这样的 jQuery 伪选择器。它们确实适用于类选择器。

一个简单的解决方法是在显示项目时添加一个类,并在隐藏项目时删除一个类。

例如:

(html)

<input type="button" value="toggle"/>
<div id="item" 
     style="width:100px;height:100px;background-color:#ff0" 
     class="Visible">
</div>

(脚本)

$(function() 

 $("#item.Visible").livequery(
     function() 
        alert("match");
     ,
     function() 
        alert("nomatch");
     
   );  


  $("input").click(function()  
      if ($("#item").is(":visible"))
         $("#item").hide().removeClass("Visible"); 
      else 
         $("#item").show().addClass("Visible"); 
    );

); 

可以在这里找到演示:http://jsbin.com/uremo

【讨论】:

以上是关于实时查询插件不适用于可见属性选择器的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 属性等于选择器不适用于自定义属性

JQuery选择器学习整理(基本选择器,层级选择器,伪类选择器,属性过滤,内容过滤,可见性过滤,范围选择器,排除选择器)

jQuery 基本选择器 层次选择器 过滤选择器 内容过滤选择器 可见过滤选择器 属性过滤选择器 表单对象属性过滤选择器

[ jquery 属性 .selector ] 此选择器返回传给jQuery()的原始选择器

css占位符选择器仅不适用于颜色

为什么direction属性不适用于块级元素