2

JQueryのUIダイアログのOnClickイベントを動的に開始するにはどうすればよいですか?

すべてのSVG-rect要素(1,2、...、1000)はこのダイアログを開くことができるはずですが、どのsvgがクリックされたかを識別するためにパラメーターまたはIDも送信する必要があります。

関連するJSコードは次のようになります。

$(function() {
    $( "#request_1" )
        .click(function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};

関連するHTMLコードは次のようになります。

<svg version="1.1" width="720" height="125">
    <rect id="request_1" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

<svg version="1.1" width="720" height="125">
    <rect id="request_2" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

/*[...]*/

<svg version="1.1" width="720" height="125">
    <rect id="request_1000" x="180.5" y="15" width="39" height="15">
    </rect>
</svg>

問題は、完全なソースコードを見つけることができるこの例から来ています:http: //jqueryui.com/dialog/#modal-form

1000個の異なるボタンがあると想像してください。

何か案が?単純なonClickを使用することが解決策になると思いますが、.click(function())を開始するにはどうすればよいですか?

助けてくれてありがとう!

4

2 に答える 2

1

クラスにバインドclickするrectか、クラスを追加して、イベントをクラスにrectバインドします。click

$( "rect" ).click(function() {
  $( "#dialog" ).dialog( "open" );
});

動的に追加される要素の場合は、次を使用します.on()

$(document).on('click', 'rect', function() {
  $( "#dialog" ).dialog( "open" );
});

デモ:http: //jsfiddle.net/dirtyd77/Fdc6b/1/

于 2013-03-13T17:08:15.447 に答える
-3

動的要素を追加する場合は、ライブ関数を使用して、次のような新しい要素のイベントを添付します。

$(function() {
    $( "#request_1" ).live('click',function() {
            createForm();
            $( "#dialog-form" ).dialog( "open" );       
    });
/*....*/
};
于 2013-03-13T17:05:28.493 に答える