Tôi đã tạo nút Giao diện người dùng jQuery và muốn thêm biểu tượng phụ 'X' vào sự kiện mouseenter và xóa 'X' trên sự kiện mouseleave. Nghe có vẻ dễ dàng.Khi di chuột thay đổi biểu tượng nút của jQuery UI - bị hỏng trên IE và Chrome
$("#hover").button({
icons: {
primary: "ui-icon-tag"
}
}).hover(function (event) {
// hover in
$(this).button("option", "icons", { primary: "ui-icon-tag", secondary: "ui-icon-close" });
}, function (event) {
// hover out
$(this).button("option", "icons", { primary: "ui-icon-tag" });
});
Sự kiện di chuột được kích hoạt nhiều lần nếu bạn di chuyển con trỏ chuột trong nút.
Tính năng này hoạt động trong Firefox, tuy nhiên, không thành công với IE và Chrome.
Thật khó để giải thích tác dụng kỳ quặc trong lời nói, nhưng xin vui lòng xem jsFiddle đây:
Mục tiêu của tôi là để đạt được hiệu ứng nhất quán trên tất cả các trình duyệt. Cảm ơn =)
EDIT ***
Bây giờ tôi có một số đầu mối là tại sao di chuột được chia trong IE và Chrome. Di nút UI một vài lần và kiểm tra các yếu tố nút trong Firebug, Hóa ra các thẻ html đang thiếu sót bởi jQuery UI phụ tùng ..
<button id="hover" class="ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-button-text-icons" role="button">
<span class="ui-button-icon-primary ui-icon ui-icon-tag"/>
<span class="ui-button-text">Hover me!</span>
<span class="ui-button-icon-secondary ui-icon ui-icon-close"/>
</button>
<span class="ui-button-icon-primary ui-icon ui-icon-tag"/>
<span class="ui-button-text">Hover me!</span>
<span class="ui-button-icon-secondary ui-icon ui-icon-close"/>
</button>
Lưu ý kéo dài thêm và NÚT thẻ đóng bây giờ? Hành vi này có phải là lỗi của giao diện người dùng jQuery không?
Bạn có thể thử ví dụ ở đây:
Điều đó sẽ không làm việc. Đã thử điều đó. Trong thực tế, dưới mui xe, di chuột là sử dụng mouseenter và mouseleave cho xử lý sự kiện là tốt, đọc ở đâu đó. Tôi có cảm giác rằng tình trạng chủng tộc đang diễn ra ở đây ..Nó xảy ra khi bạn di chuột qua nút đó và dẫn đến yếu tố thiếu sót đã chứng minh ở trên .. – Kagawa
Tôi đang chiến đấu với jsfiddle, nhưng tôi nghĩ rằng câu trả lời cập nhật của tôi hoạt động ... – Jason
Nó vẫn giống nhau, chỉ hoạt động trong Firefox, thất bại trên cả Chrome và IE .. Biểu tượng phụ ('X' - chữ thập) không bị xóa sau vài lần lướt nhanh .. Có thể bạn nên thử lại =) – Kagawa