2011-10-18 15 views
2

私はtoggle show/hideで変更したslickmap.cssを使用した組織図を持っています。それはすべて正常に動作していますが、今はクリック時にモーダルダイアログウィンドウを追加し、タグから情報を表示する必要があります。jQueryモーダルダイアログがhtml()と競合し、falseを返します。

私はこれを行うことができましたが、トグルクローズアクションが起こらないようにfalseを返さなければなりませんでした。情報を表示すると、ページからタグが完全に削除されます。私はhtml(this)を追加すると、最後にfalseを返すのを無視すると思います。

私はこれらの2つの機能を連携させることができます。ここで

は私がモーダルダイアログを呼び出すために使用していたコードで、私はhaventは申し訳ありませんがフィドルを投稿が、私はこの問題は、

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html(this); 
    return false; 
}); //end click handler 
+2

何がしたいです'.html(this)'で実現するには?あなたは '.html($(this).html())'を探していますか? –

+0

ありがとう、それは働いた。なぜそれが働いたのか教えてください。また、答えとして投稿して、私は受け入れるよ、歓声 –

+0

実際に私はそれが働いて、半分しか働いた、ありがとう:)を見ることができます –

答えて

3

試みることができます。

このコードはイベントハンドラの内側にあるため、thisはイベントを処理するDOM要素(ここではclick)になります。 html()は、文字列または関数の引数だけを取ることができます。

あなたの目標は#samplelinkの内容との対話を埋めるためにある場合は、結果の文字列との対話にhtml()を呼び出して、引数なしで現在の要素のhtml()を呼び出す必要があります:

$("#samplelink").click(function() { 
    $("#modal_window").dialog("open").html($(this).html()); 
    return false; 
}); 
+0

「this」の割り当てられた値がイベントハンドラの中にあれば、それが変わるかもしれないということを説明してくれてありがとう。乾杯 –

1

てみてくださいどこにあるか、これがあると思う:

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html($(this).html()); 
    return false; 
}); //end click handler 

$(this).html()には有効なHTMLコードが含まれています。

あなたがhtml()方法にthisを渡すことはできません急速に

$('#samplelink').click(function(){ 
    $('#modal_window').dialog('open').html('<h1>Hello World</h1>'); 
    return false; 
}); //end click handler 
+0

フレデリックは正しい答えだったDavidに感謝しました。私は彼に感謝しました –

関連する問題