Member 13491888 Ответов: 1

Как сделать так, чтобы jquery нацеливался на нажатую кнопку, а не на первый экземпляр


Привет, у меня есть функция JQuery. В последнее время потребности изменились, и теперь вместо одной кнопки у нас будет много. После его опробования возникает проблема, независимо от того, какую кнопку Вы нажмете, JQuery извлекает данные из первой кнопки. Он должен быть изменен, чтобы получить его из одного экземпляра, который щелкается.

(function($) {
  $(".content-button").click(function(e) {
    e.preventDefault();

    var $contentWrapper = $("#content-wrapper");
	var postId = $contentWrapper.data("id");

    $.ajax({
        url: "/direct.php",
        type: "POST",
        data: {
          "post_id": postId   	  
        },
      })
      .done(function(data) {
      	$contentWrapper.html('');
        $contentWrapper.append(data);
      });
  });
  $(".content-button").mouseup(function(e) {
	  if (e.which == 1) {
      $(".content-button").hide();
    }
  });
})(jQuery);


Что я уже пробовал:

Я думаю, что должен использовать (это), но все, что я пробовал, потерпело неудачу, я не очень хорошо понимаю JQuery.

Kornfeld Eliyahu Peter

Ваш HTML может помочь понять проблему...

1 Ответов

Рейтинг:
10

F-ES Sitecore

Переместите идентификатор, относящийся к каждой кнопке, в саму кнопку и прочтите его, используя "это", которое представляет кнопку, вызвавшую событие

<form id="form1" runat="server">
    <input type="button" class="content-button" value="One" data-id="1" />
    <input type="button" class="content-button" value="Two" data-id="2" />
</form>

<script>
        $(document).ready(function () {
            $(".content-button").click(function (e) {
                e.preventDefault();

                var postId = $(this).data('id');
                alert(postId);
            });
        });
</script>


Member 13491888

Хорошо сработало!!!