2

.live(jQueryメソッド)の結果としてイベントを引き起こした要素のIDを見つけるにはどうすればよいですか?

次に例を示します。

$("form[data-f=true]").live("submit", function (evt) {
    /*
      If I have <input type="submit" name="Submit1" data-f="true" /> and this button is clicked, then I want to know it's Submit1 button.
    */
});

evtとそのプロパティ/フィールドを確認しましたが、運がありませんでした。

4

4 に答える 4

4

これを使って、

event.target //DOM object.

evt.target.id  //id of source element.

sourceElement = $(evt.target.id); // will get you jQuery object

jQuery 1.7以降、$。liveは非推奨になっていることに注意してください。代わりに$.onを使用してください。

送信の原因となった要素を取得します。

$(document).ready(function() {
    $(document).on('submit', 'form[data-f=true]', function() { 

    var elem = $("input[type=submit][clicked=true]");
    alert(elem.attr('id'));
    // DO WORK

});

$("form[data-f=true] input[type=submit]").click(function() {
    $("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
    $(this).attr("clicked", "true");
});
于 2012-12-19T15:24:24.883 に答える
0

イベントハンドラーで、thisイベントのジェネレーターを指します

$("form[data-f=true]").live("submit", function (evt) {
    $(this); // is the event generator.
});
于 2012-12-19T15:24:40.173 に答える
0

現在の要素がハンドラー関数に適用されるため、次のコマンドを使用できますthis.id

$("form[data-f=true]").live("submit", function (evt) {
    alert(this.id)
});

イベント自体に問い合わせて、どの要素がイベントを発生させたかを確認することもできます。

$("form[data-f=true]").live("submit", function (evt) {
    alert(evt.target.id)
});
于 2012-12-19T15:28:14.443 に答える
0

submitイベントはフォーム自体によって発行されるため、送信.targetされるフォームになります。フォーム内のどのボタンが最後にクリックされたかを知りたい場合は、次のようなボタンからバブルするイベントにバインドする必要がありますclick

$("form").on("click", ":submit", function (event) {
    console.log(event.target); // The submit button last clicked
});​

ここから、フォームを送信するかどうかを選択できます。このハンドラーは、要素で発生するクリックイベントにのみ応答し、内部のボタンformから続行します。submit

デモ: http: //jsfiddle.net/5sQZ5/1/

submitフォーム内で最後にクリックされた要素への参照を動的に追加できるため、フォームのハンドラー内で、誰がイベントを発生させたかを判別できます。

// Tell submit buttons to update parenting forms when clicked
$(":submit").on("click", function (event) {
    $(this).closest("form").data("target", this);
});

// When a form is submitted, find last associated submit button
$("form").on("submit", function (event) {
    console.log( $(this).data("target") ); 
});

デモ: http: //jsfiddle.net/5sQZ5/2/

于 2012-12-19T16:01:59.943 に答える