Branch: 86 South Main Street, Pine Island
0 $0.00
items in your cartto quote To cart
Ooops no items were found.
Try something else.
Ok
Loading…
Search & Filter
Age Verification

Chain

1120 items found
Sort by
Baron 163M Bolt Snap, 3/8 in Snap Opening, 4-5/8 in L Dimensions, Malleable Iron, Nickel
Baron 435-5/8 Spring Snap, 3/16 in Snap Opening, 2-1/2 in L Dimensions, 30 lb Working Load, Steel, Nickel
Campbell T5950724 Lap Link, 5/16 x 1-1/2 in Trade, 700 lb Working Load, Steel, Zinc
Baron 251S-3 Quick Snap, 749 lb Working Load, Stainless Steel
Total 1120 products
show per page
SEARCH ×

/** * ⚡ EvoX AJAX Variant Handler – Optimized UX Version * Shows instant loading effect, polls DOM for update, and syncs product data */ (function () { // Pre-variant change hook (instant feedback) document.addEventListener('change', function (e) { if (e.target.matches('.product-option select, .variant-selector select')) { console.log("Variant change triggered – showing loading UI"); const productContainer = document.querySelector('.productView, .product'); if (productContainer) { productContainer.style.opacity = '0.5'; // Visual cue for loading productContainer.style.transition = 'opacity 0.2s ease-in-out'; } } }); // EvoX callback after variant AJAX update window.evoXProductChangeCallback = function () { console.log("EvoX AJAX response received – polling for updated DOM"); const start = Date.now(); const timeoutLimit = 3000; // Fail-safe after 3s const interval = setInterval(() => { const imageEl = document.querySelector('.product-image img, .product-main-image img'); const priceEl = document.querySelector('.product-price .price, .pricing .price, .productView-price .price'); const descEl = document.querySelector('.product-description, .productView-description, .description'); if (imageEl && priceEl && descEl) { console.log("Updated DOM ready"); // Product Image const imageSrc = imageEl.src; console.log("New Image:", imageSrc); // Product Price const price = priceEl.textContent.trim(); console.log("New Price:", price); // Product Description const description = descEl.textContent.trim(); console.log("New Description:", description); // Optional: update mirrored DOM elements here // document.getElementById('myCustomPriceBox').innerText = price; // Restore full UI const productContainer = document.querySelector('.productView, .product'); if (productContainer) { productContainer.style.opacity = '1'; } clearInterval(interval); // Stop polling } if (Date.now() - start > timeoutLimit) { console.warn("Timeout: AJAX content did not load in time"); clearInterval(interval); } }, 50); // Fast polling every 50ms }; })();