Как связать элементы html с динамически создаваемым идентификатором с событиями jQuery в asp.net MVC - PullRequest
0 голосов
/ 25 июня 2018

Я повторяю 3 раза частичное представление в синтаксисе Razor.Код выглядит так:

foreach(var item in Model.items) //Will be run 3 or more times
{
    {Html.RenderPartial("_viewname", item)}
}

Внутри _viewname.cshtml я создаю таблицу.Теперь я хочу связать эти таблицы с событием jQuery, для которого я пишу следующее:

$('#tbl tbody').on('click', 'tr', function () {
//Code goes here
});

Теперь проблема в том, что это событие вызывается 3 раза, даже когда я нажимаю на любую из таблиц.

Я хочу как-то различать 3 таблицы.Если я предоставлю им разные идентификаторы HTML, то как мне написать свой код jQuery для его захвата?

Например, _viewname.cshtml выглядит так:

@model abc
<table id="tbl">
    //table body and other stuff
</table>

Если я поставлю идентификатор как«tbl_@Model.uniqueId», как убедиться, что вызывается событие jQuery.

PS - в _viewname.cshtml есть другие частичные представления, каждый из которых должен иметь уникально идентифицируемый идентификатор.

1 Ответ

0 голосов
/ 25 июня 2018

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

$('#tbl tbody').on('click', 'tr', function (event) {
    console.log(event.target.id);
});

И затем получение цели события

...