私はこれまで使ったことがなくsetInterval()
、これに頭を悩ませることができないので、アドバイスが必要です。ある種のイベントリスナーを作りたいです。
たとえば、選択メニューのオプションの長さを確認したいが、サードパーティのスクリプトがAjaxリクエストを介して選択メニューのコンテンツを入力するとします。残念ながら、サードパーティのスクリプトに触れることは許可されていないので、コンテンツが追加されるのを待ってリッスンし、そのタスクを実行できる関数を用意することについて考えました。
私のウェブページに次のようなものがあるとしましょう。
<select size="7" id="cat"> </select>
onloadこれは次のようなオプションでいっぱいになります:
<option value="Category 1">Category 1</option>
<option value="Category 2">Category 2</option>
<option value="Category 3">Category 3</option>
<option value="Category 4">Category 4</option>
オプションの長さをリッスンするonLoad(正確には$(document).ready())もロードする関数を追加し、ゼロより大きい場合は何かを実行したい(この例ではアラート) )。
function checkLen(){
if($('#cat option').size() > 0){
return true;
}else{
return false;
}
}
function takeDefault(){
var ourInterval = setInterval("checkLen();", 1000);
if(ourInterval == true){
alert("Okay I will do something now");
clearInterval(ourInterval);
}
// Now I will perform some other tasks
}
$(document).ready(function() {
takeDefault();
});
私が本当に理解していないので、これはうまくいきません。if(checkLen == True)条件は1回だけ実行され、選択メニューにデータが入力されるまで1秒ごとに実行する必要があります。