На странице просмотра asp.net mvc напишите этот код бритвы для создания динамической кнопки:

  @foreach(var item in ViewBag.MenuLists)
        {
<button id="buttons" value=@item.RecordId >اضافه کردن به سبد خرید</button>

        }


и хотите, чтобы при нажатии кнопки отображалось значение для пользователя, для этой цели напишите этот код java-скрипта:

$(document).ready(function () {
            $("#buttons").click(function () {
                var fired_button = $("#buttons").val();
                alert(fired_button);
            });
        });


первая динамическая кнопка показывает значение, но при нажатии двух или более кнопок не отображается предупреждение, что происходит? как можно решить эту проблему? спасибо.

0
ahbar ahbar 4 Янв 2018 в 22:32

2 ответа

Лучший ответ

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

$(".btn").click(function()
{
alert("you clicked :"+ $(this).val()); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn" value="1">1 </button>
<button class="btn" value="2">2 </button>
<button class="btn" value="3"> 3</button>
1
Aamir Ali 4 Янв 2018 в 20:11

Вы получаете контроль над button к id. это нормально, но новые динамические кнопки не имеют того же идентификатора, что я предполагаю, или не должен. Если они это сделают, вы можете повлиять только на первого из них [поведение не гарантируется].

Другая возможность состоит в том, что поскольку ваши кнопки загружаются в DOM динамически, они могут не существовать, когда документ загружен и вызывается функция .ready(). Возможно, вам нужно будет добавить новый фрагмент сценария для каждой кнопки, помещая ее на страницу, ИЛИ разработать метод итеративного именования для id каждой из них, чтобы к ним можно было обращаться независимо.

Как правило, id должен быть уникальным для элемента, а classes должен быть уникальным для аналогичных элементов. Это рекомендация, а не правило, но для этого есть практические причины, например getElementByID() по сравнению с getElementsByClass().

Я думаю, что в вашем случае, однако, новые кнопки помещаются на DOM после запуска инициализации [.click()].

0
NappingRabbit 4 Янв 2018 в 19:45