Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
2/8
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder
2/8

Glasses Grips- Anti Slip Eyeglass Holder Ear Grip Sunglasses Retainer Temple Tip Reading Glasses Holder

$9.99
$9.99
Save $0.00
Buy More Save More
Please select a buy more save more
Quantity
Barcode:

Do more without worrying about losing your sunglasses or glasses. your ultimate eyewear companion to stop glasses from slipping. Our glasses holders keep your eyewear secure including sunglasses so you can immerse yourself in activities. Works great for sports and outdoors as well as on roller coaster.

Universal Fit: Fits all standard sunglasses and glasses.

Stretchy and Versatile: Suitable for kids and adults.

Discreet Comfort: Lightweight and barely noticeable.

Fits Kids size glasses


OUR GUARANTEE

📦 Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

💰 Money-Back Guarantee: If your items arrive damaged or become defective within 15 days of normal usage, we will gladly issue out a replacement or refund.

✉️ 24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

🔒 Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

Customer Reviews
Here are what our customers say.
Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.