1

jqueryready関数で次のコマンドを実行しています

$('[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 に答える