Thông báo xác nhận khi xóa các mục trong trình quản lý phương tiện


8

Tôi muốn có một thông báo xác nhận khi tôi xóa các mục trình quản lý phương tiện. Bây giờ, để xóa một hình ảnh, tôi chỉ cần nhấp vào chữ thập trên cùng bên phải và hình ảnh đã biến mất: nếu tôi mắc lỗi, quá tệ! Tôi đã xem xét các tùy chọn quản lý phương tiện nhưng tôi không thể thấy bất cứ điều gì như những gì tôi đang tìm kiếm.

Làm cách nào tôi có thể nhận được thông báo xác nhận hoặc cửa sổ bật lên sẽ yêu cầu xác nhận trước khi xóa mục này?

Cảm ơn sự giúp đỡ của bạn!


Tôi đã cập nhật câu trả lời với hướng dẫn về nơi bạn nên thêm mã. Tôi quên rằng các tệp phương tiện được hiển thị bằng Iframe và được tải bằng component.phpchế độ xem.
johanpw

Câu trả lời:


8

Bạn có thể thêm một vài dòng jQuery vào mẫu quản trị viên của mình (hoặc thêm nó bằng cách sử dụng một plugin chỉ kích hoạt cho khu vực quản trị):

jQuery("a.delete-item").on('click', function(e){
    if (confirm("Do you want to delete this image?") != true) {
        e.preventDefault();
    }
});

Điều đó sẽ bắt được nhấp vào nút xóa Xvà hiển thị một hộp thoại.

Chỉnh sửa:
Các tệp phương tiện được hiển thị bằng Iframe, lần lượt được tải bằng &tmpl=componenttham số. Do đó, mã ở trên phải được thêm vào tệp administrator\templates\YOURADMINTEMPLATE\component.php(bên trong <script>thẻ).

Cần làm việc :)


Cảm ơn bạn đã chỉnh sửa, @Lodder, nhưng theo API jQuery , .click()là một lối tắt cho .on( "click", handler ). Sự khác biệt (và "thực hành tốt nhất") trong trường hợp này là gì?
johanpw

2
Đây .on()là cách được đề xuất để thực hiện liên kết sự kiện như là một phiên bản cụ thể (không thể nhớ chính xác) của jQuery. Nó sử dụng ít bộ nhớ hơn và tốt hơn khi tiếp cận động. Tất nhiên nó không bắt buộc, nhưng chắc chắn bây giờ là phương pháp ưa thích. Đối với một cái gì đó đơn giản như mã bạn đã viết, thì click()sẽ ổn thôi, nhưng tôi muốn giữ bằng chứng trong tương lai chỉ cần đưa vào bất cứ điều gì có thể được thêm vào nó ... + 1 bằng cách này :)
Lodder

Cảm ơn @johanpw cho câu trả lời của bạn! Tôi đã thêm mã của bạn vào quản trị viên \ samples \ isis \ js \ template.js nhưng nó không làm gì cả. Trong tập tin mẫu quản trị của tôi, tôi phải thêm nó vào? Cảm ơn!
JinSnow

2
Để mở rộng câu trả lời của Lodder, phương thức on () sử dụng các sự kiện được ủy quyền. Lợi ích chính là các sự kiện được ủy quyền sẽ được thêm vào các phần tử con chưa được thêm vào DOM. Sử dụng $ (tài liệu) .on ('click', 'a.delete-item', callbackFunction); đảm bảo sự kiện nhấp sẽ kích hoạt ngay cả trên nội dung được tạo động không được thêm vào DOM. Rất hữu ích cho các trang web nặng AJAX.
Brian Bolli

Cảm ơn đã giải thích. Luôn luôn có một cái gì đó mới để tìm hiểu.
johanpw
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.