0

ダイアログ関数内で、クリックされたクラスの 'id' になるように I を設定する必要があります (たとえば、最初の '+ Talk' をクリックすると、I = 100006 に設定する必要があります。現在のスクリプトでは、I は次のように設定されます)。 'reqtalkdialog'.

代わりにのIDを取得するにはどうすればよいですか?

注:ダイアログスクリプト内に配置する前に、現在のスクリプトは正しいIDを取得するために使用されていました。また、ご覧のとおり、クリックされたものに応じて変更する必要があるため、グローバル変数として設定することはできません。

フィドル: http://jsfiddle.net/MCam435/NYWg2/8/

HTML:

<div id="reqtalkdialog" title="Confirmation Required">
  Would you like to request contact?
</div>

<div id="reqtalk100006" style="display:block"><a href="#" class="reqtalk" id="100006">
<span class="reqtalk_b"> + Talk </span></a> - 100006</div>

<div id="reqtalk100001" style="display:block"><a href="#" class="reqtalk" id="100001">
<span class="reqtalk_b"> + Talk </span></a> - 100001</div>

Jクエリ:

$("#reqtalkdialog").dialog({
   autoOpen: false,
   modal: true,
   buttons : {
        "Yes" : function() {
            var element = $(this);
            var I = element.attr("id");
            var info = 'id=' + I;

            $.ajax({
                type: "POST",
                url: "resource/talkrequest.php",
                data: info,
                success: function(){}
            });

            $("#reqtalk"+I).hide();
            $("#talking"+I).show();
            //return false;

            $(this).dialog("close");           
            },

        "Cancel" : function() {
          $(this).dialog("close");
        }
      }
    });

$(".reqtalk").on("click", function(e) {
    e.preventDefault();
    $("#reqtalkdialog").dialog("open");
});
4

3 に答える 3

1

ダイアログオプションを使用できます:

var element = $(this);
var I = element.dialog('option', 'currentId');

そしてイベントで:

$(".reqtalk").on("click", function(e) {
    e.preventDefault();
    $("#reqtalkdialog").dialog('option', 'currentId', $(this).attr('id')).dialog("open");
});
于 2013-09-20T21:41:08.640 に答える
1

リスナーの外側で宣言し、クリックを次のように変更するだけです。

$(".reqtalk").on("click", function(e) {
    I = $(this).attr('id');
    e.preventDefault();
    $("#reqtalkdialog").dialog("open");
});

ダイアログ関数内の変数割り当ても削除します: http://jsfiddle.net/NYWg2/9/

([はい] ボタンをクリックすると、「I」が表示されます)

于 2013-09-20T21:36:17.237 に答える