Bootstrap 旋转木马更改触发时间?

Bootstrap Carousel change firing to late?

我有一个 ASP.Net 核心 MVC Web 应用程序,在我看来我有一个 bootstrap 轮播。我正在捕捉更改事件,以便我可以获得图像显示的更多信息。我的问题是图像变化不够快。当更改事件触发并且我得到唯一的图像名称时,它仍然在第一张图像上,而不是显示的图像上,这意味着我得到的附加信息是错误的。

下面是我的 bootstrap 轮播:-

 <div id="divCarousel" class="carousel slide" data-interval="false" data-ride="carousel">
            <ul class="carousel-indicators">
                @{
                    int Pos = 0;
                }
                @foreach (var photo in Model.PhotosList)
                {
                    if (Pos == 0)
                    {
                        <li data-target="=#divCarousel" data-slide-to=@photo.Id class="active"></li>
                    }
                    else
                    {
                        <li data-target="=#divCarousel" data-slide-to=@photo.Id></li>
                    }
                    Pos++;
                }
            </ul>
            <!-- The slideshow -->
            <div class="carousel-inner">
                @{
                    Int16 i = 0;
                }
                @foreach (var photo in Model.PhotosList)
                {

                    var photoPath = "~/Photos/" + photo.PhotoPath;

                    if (i == 0)
                    {
                        <div class="carousel-item active">
                            <img class="photoSize" src="@photoPath" alt="No Photo" asp-append-version="true">
                        </div>
                    }
                    else
                    {
                        <div class="carousel-item">
                            <img class="photoSize" src="@photoPath" alt="No Photo" asp-append-version="true">
                        </div>
                    }
                    i++;
                }
            </div>
            <!-- Left and right controls -->
            <a class="carousel-control-prev" href="#divCarousel" data-slide="prev">
                <span class="carousel-control-prev-icon"></span>
            </a>
            <a class="carousel-control-next" href="#divCarousel" data-slide="next">
                <span class="carousel-control-next-icon"></span>
            </a>
        </div>

这是我的 javascript 为更改事件设置的陷阱:-

@section Scripts {
        <script>
            function showPhotoDetails() {
                var url = $('.carousel-item.active img').attr('src');
                var photopath = url.split('?');
                photopath[0] = photopath[0].substring(8, photopath[0].length);

                $.ajax({
                    type: 'POST',
                    url: "/Photos/GetValue?path=" + photopath[0],
                    dataType: "json",
                    async: false,
                    success: function (data) {
                        $("input#txtCreatedBy").val(data.createdBy);
                        $("input#txtDateCreated").val(data.dateCreated);
                        $("textarea#txtNotes").val(data.notes);
                    }
                });
            }
            $(document).ready(function () {
                showPhotoDetails();
                $('.custom-file-input').on("change", function () {
                    var fileLabel = $(this).next('.custom-file-label');
                    var files = $(this)[0].files;
                    if (files.length > 1) {
                        fileLabel.html(files.length + ' files selected.');
                    } else if (files.length == 1) {
                        fileLabel.html(files[0].name);
                    }
                });
                $('.carousel-control-previous').on("click", function () {
                    showPhotoDetails();
                });
                $('.carousel-control-next').on("click", function () {
                    showPhotoDetails();
                });
            });
        </script>
    }

我基本上需要在幻灯片事件后获取图像名称。非常感谢任何帮助。

谢谢,

A 设法解决了这个问题。基本上,我使用 slid.bs.carousel class 而不是捕获上一个和下一个的点击事件。现在一切正常。