1

コードを fancybox から jquery ui に変更していますが、このコードにはいくつかのエラーがあります。

<a class = "perfil_1"><h3>Luciana </h3></a>
<a class = "perfil_2"><h3>John</h3></a>
<a class = "perfil_3"><h3>Pedro </h3></a>

<div id="dialog_1">
<p>Lorem ipsum dolor sit amet</p>
</div>

<div id="dialog_2">
<p>Lorem ipsum dolor sit amet</p>
</div>

<div id="dialog_3">
<p>Lorem ipsum dolor sit amet</p>
</div>


  for (i = 1; i < 4; i++) {
            $('.perfil_'+i).click(function(){
                $('#dialog_'+i).dialog('open');
                return false;
            });
         };

助けてくれませんか?ありがとう。

4

2 に答える 2

3

.dialog()宣言が欠落していることに注意してください。これがないと、ダイアログが作成されないため、ダイアログが開きません。スタイルなしのダイアログの例については、 「 Jsフィドル$("dialog_" + i).dialog().dialog("open");を参照」と呼びます。

それぞれをループする代わりに、各アンカーにクラスを追加して、ループするためにそれを使用するインデックス属性を与えてみませんか。

<H3><a class = "perfil" index=1>Luciana </a></h3>
<H3><a class = "perfil" index=2>John</a></h3>
<H3><a class = "perfil" index=3>Pedro</a></h3>

<div id="dialog_1">
<p>Lorem ipsum dolor sit amet</p>
</div>

<div id="dialog_2">
<p>Lorem ipsum dolor sit amet</p>
</div>

<div id="dialog_3">
<p>Lorem ipsum dolor sit amet</p>
</div>


$('.perfil').live("click", function(){
    var i = this.getAttribute("index");
    $('#dialog_'+i).dialog().dialog('open');
    return false;
});

ちなみに、コードのバージョンが$(document).ready(function(){})ブロック内で実行されていないか、HTMLの最後にない場合は、要素が存在する前にクリック割り当てが行われ、バインドされていない可能性があります。あなたの現在のアンカーに。これが私が一緒に行く傾向がある理由ですliveのでdelegate、あなたは常に拘束力が保証されています。

于 2012-04-20T15:27:53.253 に答える
1

あなたのスクリプトコードが間違っています..「_」記号を指定するのを忘れたと思います。

  for (i = 1; i < 4; i++) {
            $('.perfil_'+i).click(function(){
                $('#dialog_'+i).dialog('open');
                return false;
            });
         };
于 2012-04-20T15:20:24.473 に答える