1

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

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

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

请帮忙。

4

1 回答 1

3

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

于 2009-07-14T09:55:53.663 回答