jqueryready関数で次のコマンドを実行しています
$('[id$=txtCustomer]:visible').livequery(
function() { alert('Hello') },
function() { alert('World') }
);
「こんにちは」というアラートが初めて表示されますが、テキストボックスのこの表示を切り替えると、関数は呼び出されません。
助けてください。
jqueryready関数で次のコマンドを実行しています
$('[id$=txtCustomer]:visible').livequery(
function() { alert('Hello') },
function() { alert('World') }
);
「こんにちは」というアラートが初めて表示されますが、テキストボックスのこの表示を切り替えると、関数は呼び出されません。
助けてください。
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