2012-02-14 10 views
1

jQueryを使用してhtmlを呼び出し、divにロードします。私はkeyupイベントを使用しています。私はdivに複数の時間(重複)を追加するHTMLデータを見ている。どのように私は複数の要求を避けることができ、HTMLを一度ロードするだけです。jQueryを使用して重複するHTMLのロードを回避する方法

var loaded=0 
$('button').click(function(){ 
    if(loaded==0) { 
    $('div').load('my.html'); 
    } 
    loaded = 1 
}); 

編集:

$('button').click(function(){ 
    if(!$('div').hasClass('loaded')) { 
     $('div').load('my.html'); 
     $('div').addClass('loaded') 
    }    
}); 
+0

コードを追加してください。 – Alfabravo

+0

もっとコードが必要です... – elclanrs

+0

あなたは達成しようとしていることについていくつか詳しく説明できますか? – ComputerSaysNo

答えて

1

貧乏人のバージョンの作業ではありませんゲッティです1回以上呼び出された。複数の匿名イベントハンドラをアタッチしている可能性があります。

+0

からHTMLを取得している場所によって異なりますが、1つのページで異なるボタンをクリックすると異なるHTMLが読み込まれる場合はどうなりますか? –

+0

上記の私の編集を参照してください。 –

0

使用Firebugのイベントハンドラかどうかを確認するためにここで

はコード

$('input').keyup(function(){ 
    $('div').load('my.html'); 
    return false; 
    });  

return false;

1

対象のdivにidを使用する必要があります。そうしないと、すべてのdivが一度に影響を受けます。 $( 'div')を使用する代わりに、idを持つ特定のdivを使用します。 $( 'div').load(...)divは最初に 'loaded'というクラスを持っていないので、ページ上のすべてのdivに同じ操作を適用します。

$('input').keyup(function(e){ 
    e.stopPropagation(); // to stop event bubling 
    e.preventDefault(); // to stop it from being submitted if it's in the form 
    var my_div=$('#some_div'); 
    if(!my_div.hasClass('loaded')) 
    { 
     my_div.load('my.html', function() { 
     my_div.addClass('loaded'); 
    } 
}); 
関連する問題