2011-11-10 15 views
0

私はリンクを持っているのhtmlありますjQueryのカラーボックスフューチャー要素追加

<a id="myLink" href="/aa.html" title="New Bangoo" class="bangoo">Bangoo</a> 

を、私はこのラインを持っているのjsファイルを含める:

$("#myLink").live('click', function() { 
var typi = 'Ginga';  
    $("#typeList").append('<option>' + typi + '</option>');   
}); 

aa.htmlはそれを持っている:

<label for="typeList">Type</label> 
<div> 
    <select id="typeList"></select> 
</div> 

aa.htmlがカラーボックスで開きます。すべてはOKですが、選択リストにタイプを追加することはできません。それは開いているときに要素がありません。以前は働いていましたが、今は働いていません。これは、jsファイルがhtmlのロードの前にリストに追加しようとしている可能性がありますか?

アイデア?

EDIT:

私はそれが動作することを実行します。私はそれが待機し、この時点では、リストを選択するために、追加するのに十分な時間を持っている何かを警告する

$("#myLink").live('click', function() { 
alert('Wait Here!'); 
var typi = 'Ginga';  
    $("#typeList").append('<option>' + typi + '</option>');   
}); 

。外部リンクがロードされていることを確認するにはどうすれば追加できますか?

PS:私の問題は、myLinkをクリックした後に読み込むHTML要素を追加しようとしていることです。 aa.htmlは最初にdomに配置されません。外部ソースからロードします。

外部ページが画面に読み込まれた後、選択リストに要素がありません。 Firebugから同じコードを実行しようとすると、リストを選択して動作するオプションが追加されます。つまり、コードは機能しますが、タイミングや非同期の問題があり、選択リストに要素を追加してからDOMツリーに配置する必要があります。私はそれをロードし、その後、私のコードを実行するのを待つ必要があります。

答えて

1

を試してみてください、私は私の問題を解決しました。 colorboxプラグインには関数onCompleteがあるので、その関数を使ってページが読み込まれるようにしました。

2
try this 
$("#myLink").live('click', function(e) { 
e.preventDefault(); 
var typi = 'Ginga';  
    $("#typeList").append($('<option></option>').val(typi).html(typi)) ; 

}); 
+0

私は自分の質問を編集しましたが、preventDefaultは機能しません。 – kamaci

+0

@kamaciそれ以外のコードを追加しました。 –

+0

ありがとうございますが、まだ同じ問題があります。ページ選択リストに表示された外部リンクの後には要素がありません。 Firebugからもう一度オプションを追加しようとすると動作します。 – kamaci

0

$("#myLink").live('click', function(e) { 
e.preventDefault(); 
var typi = 'Ginga';  
    $("<option/>",{text:typi,value:typi}).appendTo("#typeList");   
}); 

DEMO

+0

あなたの答えに感謝し、あなたのデモに感謝します。しかし、私は自分の問題は私がdomに存在しない選択リストに追加しようとしていると思う。私は外部ソースからリンクをクリックした後に読み込みます。 – kamaci

+0

私の質問を編集しました – kamaci

+0

あなたは答えを持っているので、答えを更新する必要はありません:) – Rafay

関連する問題