Có ai biết về crossbrowser tương đương với tham số sự kiện clearOriginalTarget không? Tham số này là Mozilla cụ thể và nó mang lại cho tôi nguyên tố gây ra mờ. Hãy nói rằng tôi có một đầu vào văn bản và một liên kết trên trang của tôi. Nhập văn bản có tiêu điểm. Nếu tôi nhấp vào liên kết, sự kiện làm mờ đầu vào của văn bản sẽ cho tôi phần tử liên kết trong Firefox thông qua tham số clearOriginalTarget.Crossbrowser tương đương với tham số sự kiện clearOriginalTarget
Tôi đang mở rộng phương thức onBlur của Autocompleter.Base để không ẩn kết quả tìm kiếm khi trường tìm kiếm mất tiêu điểm cho các phần tử đã cho. Theo mặc định, phương thức onBlur sẽ ẩn nếu trường tìm kiếm mất tiêu điểm đối với bất kỳ phần tử nào.
Autocompleter.Base.prototype.onBlur = Autocompleter.Base.prototype.onBlur.wrap(
function(origfunc, ev) {
var newTargetElement = (ev.explicitOriginalTarget.nodeType == 3 ? ev.explicitOriginalTarget.parentNode: ev.explicitOriginalTarget); // FIX: This works only in firefox because of event's explicitOriginalTarget property
var callOriginalFunction = true;
for (i = 0; i < obj.options.validEventElements.length; i++) {
if ($(obj.options.validEventElements[i])) {
if (newTargetElement.descendantOf($(obj.options.validEventElements[i])) == true || newTargetElement == $(obj.options.validEventElements[i])) {
callOriginalFunction = false;
break;
}
}
}
if (callOriginalFunction) {
return origFunc(ev);
}
}
);
new Ajax.Autocompleter("search-field", "search-results", 'getresults.php', { validEventElements: ['search-field','result-count'] });
Cảm ơn.
Cảm ơn Sergey. Có lẽ tôi nên bắt đầu viết phương pháp của riêng tôi bằng cách sử dụng sự kiện đoàn thay vì cố gắng để mở rộng onBlur phương pháp của Autocompleter. Với sự kiện ủy nhiệm và sử dụng một số biến toàn cục, tôi có thể sửa lỗi này. – matte