dropdown () работает только один раз при начальной загрузке данных - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь остановить распространение события строки таблицы, не мешая переключению меню кнопки td, и не могу понять это.

Вот мой код тела таблицы (проходящий из другого файла):

<tr data-toggle="ajax-modal" data-target="#editUser" data-url="@Url.Action("EditUser", new {Id = Model.Id})" asp-action="EditUser" asp-controller="Administration" asp-route-id="@Model.Id">
    <td class="text-left d-none">@Model.Id</td>
    <td class="text-left">@Model.UserName</td>
    <td class="text-left">@Model.Email>
    <td class="text-left">@Model.PhoneNumber</td>
    <td class="text-left">@Model.City</td>
    <td>
        <button type="button" id="btnOpen" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="myButton btnRed dropdown-toggle">
            <i class="glyphicon glyphicon-remove-circle"></i>
        </button>
        <div class="dropdown-menu">
            <a class="dropdown-item" title="cancel">Cancel</a>
            <a class="dropdown-item" title="delete">Delete</a>
        </div>
    </td>
</tr>

Я пробовал:

Это:

$('button').click(function (e) {
    e.stopPropagation();
});

Это:

$('.myButton').click(function (e) {
    e.stopPropagation();
    var x = document.getElementById("btnOpen").getAttribute("aria-expanded");
    if (x == "true") {
        x = "false"
    } else {
        x = "true"
    }
    document.getElementById("btnOpen").setAttribute("aria-expanded", x);
    $('#dropdownBtn').addClass('show');
});

и просто:

pointer-events: none;"

Это самая близкая вещь, с которой я работаю ;однако, событие .dropdown () покажет меню только после 2-го щелчка, затем оно будет отображаться нормально. (Таким образом, вы нажимаете кнопку «Удалить» один раз, меню не отображается. После этого оно работает при следующем нажатии, даже на кнопках удаления в другом ряду)

$('.myButton').click( function (event) {
    event.preventDefault();
    event.stopPropagation();
    $('.myButton').dropdown();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...