{"product_id":"razer-viper-v4-pro-wireless-esports-gaming-mouse-50g-ultra-lightweight-fast-precise-50k-dpi-optical-sensor-8k-polling-gen-4-optical-switches-scroll-wheel-usb-c-charging-for-pc-mac-white-3","title":"Razer Viper V4 Pro Wireless Esports Gaming Mouse – 50g Ultra Lightweight, Fast \u0026 Precise, 50K DPI Optical Sensor, 8K Polling, Gen-4 Optical Switches, Scroll Wheel, USB-C Charging, for PC \u0026 Mac – White","description":"Click to play video Previous page Next page Previous page Next page Faker Zellsis Hakis meL Previous page 50 g Ultra-Lightweight Design #1 pro-trusted shape, now even lighter—built for faster swipes and esports precision. Next page Ultra-Lightweight Wireless Optical Scroll Wheel Optical Sensor Optical Switches Previous page Please to review HP 200 USB Wireless Mouse with 1000 DPI Optical Sensor 2.4 GHz Wireless Cconnectivity Ambidextrous Design - Black From the manufacturer... Logitech M171 Wireless Mouse Optical Tracking Ambidextrous System requirements:Windows 7, Windows 8, Windows 10 or laterMac OS X 10.8 or laterChrome OSLinux ke... Logitech M170 Wireless Mouse USB Receiver \u0026amp; 12M Battery Life View largerHighlightsReliable 2.4Ghz wireless connection10 meter\/33 feet wireless range12 month batt... Microsoft Bluetooth Mouse Fast-Tracking Sensor - Black Designed for everyday comfort and precisionMeet your new go-to mouse for precise scrolling and navig... 5\/5 Logitech M235 Wireless 2.4GHz with USB Unifying Receiver 1000 DPI Optical Tracking 12 Month Battery For PC \u0026amp; Mac - Grey COMFORT ANYWHEREThe compa contoured design with soft rubber grips keeps you comfortable—even when ... Logitech M185 Wireless Mouse, 2.4GHz with USB Mini Receiver, 12-Month Battery Life, 1000 DPI Optical Tracking, Ambidextrous PC\/Mac\/Laptop - Swift Grey FEATURESComfortable and AmbidextrousA comfortable, contoured shape designed for people who enjoy com... Customers who bought this item also bought Lenovo D22-10 LED Monitor, 21.5 \" Full HD HDMI \/ VGA The Lenovo D22-10 monitor offers rich visual details on a 21,5\" display. The full-HD, 1920x1080 reso adjustItemSize('#AlsoBought_DYC1pUV3', {\"1740\":{\"items_per_row\":4,\"items_spacing\":0},\"1530\":{\"items_per_row\":4,\"items_spacing\":20},\"1160\":{\"items_per_row\":3,\"items_spacing\":30},\"900\":{\"items_per_row\":3,\"items_spacing\":30},\"600\":{\"items_per_row\":1,\"items_spacing\":10}}); Information About Us Delivery Information Privacy Policy Terms \u0026amp; Conditions Customer Service Sitemap Service Centers Extras Specials My Account My Account Order History Wishlist Newsletter Delivery Info 24 Hours for Amman and Alzarqa, 48 Hours for all other cities Information About Us Delivery Information Privacy Policy Terms \u0026amp; Conditions Customer Service Sitemap Service Centers Extra Specials My Account My Account Order History Wishlist Newsletter image image Wasfi Al-Tal Street (Gardens) Pizza Hut Building – No. 28 Amman 11184, Jordan Commercial Registration Number (CR): 121125 VAT Registration Number (VAT No.):  WhatsApp:  [email protected] Working Time: Saturday - Wednesday : 8:00 AM - 6:30 PM Thursday : 8:00 AM - 3:00 PM Friday: Closed Chat with Us \/******************************************-PREPARE PLACEHOLDER FOR SLIDER-******************************************\/var setREVStartSize = function() {vartpopt = new Obje();tpopt.startwidth = 768;tpopt.startheight = 158;tpopt.container = jQuery('#rev_slider_6_3');tpopt.fullScreen = \"off\";tpopt.forceFullWidth=\"off\";tpopt.container.closest(\".rev_slider_wrapper\").css({height:tpopt.container.height()});tpopt.width=parseInt(tpopt.container.width(),0);tpopt.height=parseInt(tpopt.container.height(),0);tpopt.bw=tpopt.width\/tpopt.startwidth;tpopt.bh=tpopt.height\/tpopt.startheight;if(tpopt.bh\u0026gt;tpopt.bw)tpopt.bh=tpopt.bw;if(tpopt.bh\u003ctpopt.bw\u003e1){tpopt.bw=1;tpopt.bh=1}if(tpopt.bw\u0026gt;1){tpopt.bw=1;tpopt.bh=1}tpopt.height=Math.round(tpopt.startheight*(tpopt.width\/tpopt.startwidth));if(tpopt.height\u0026gt;tpopt.startheight\u0026amp;\u0026amp;tpopt.autoHeight!=\"on\")tpopt.height=tpopt.startheight;if(tpopt.fullScreen==\"on\"){tpopt.height=tpopt.bw*tpopt.startheight;var cow=tpopt.container.parent().width();var coh=jQuery(window).height();if(tpopt.fullScreenOffsetContainer!=undefined){try{var offcontainers=tpopt.fullScreenOffsetContainer.split(\",\");jQuery.each(offcontainers,function(e,t){coh=coh-jQuery(t).outerHeight(true);if(coh\u003ctpopt.minfullscreenheight call placeholder tpj=\"jQuery;var\" revapi6 undefined false copyright for computers web development seo dsteck.com if window.tb_wishlist_label array.prototype.foreach.call li.wishlist_total\u003e a \u0026gt; .tb_text'), function(el) { var holder = document.createElement('span'), number = document.createTextNode(window.tb_wishlist_label.replace(\/[^0-9]\/g, '')); holder.appendChild(number); holder.classList.add('tb_items'); el.appendChild(holder); });} $(window).load(function() { $(document.body).trigger(\"sticky_kit:recalc\");});$(document).ready(function() { compare.fixTotal(); \/\/ 1. Define the pages where this logic should run \/\/ Added .tb_page_product_manufacturer for manufacturer pages const isTargetPage = $('body').is('.tb_page_product_category, .tb_page_product_manufacturer_info'); if (isTargetPage) { \/\/ 2. Clone the button only if we are on the corre page $( \".bf-btn-show\" ).clone(true).prependTo( \".tb_wt_products_system\" ); \/\/ 3. Target the button const filterButton = document.querySelector('#content .bf-btn-show'); if (filterButton) { filterButton.innerText = 'Filter'; filterButton.addEventListener(\"click\", function() { $(\".bf-panel-wrapper\").toggleClass('bf-opened'); $(\"body\").toggleClass('bf-non-scrollable'); }); } } \/\/ No 'else' block here, so nothing prints to the console on other pages.});$(window).scroll(function() { if($(window).scrollTop() \u0026gt; 50) { $('.bf-btn-show').addClass('top-filter'); } else { $('.bf-btn-show').removeClass('top-filter'); }});$(document).ready(function() { $('.radio input').change(function() { $(this).parents('.radio').siblings('.radio').removeClass('selected'); if (this.checked) { $(this).parents('.radio').addClass('selected'); } });});function GetURLParameter(sParam){ var sPageURL = window.location.search.substring(1); var sURLVariables = sPageURL.split('\u0026amp;'); for (var i = 0; i \u0026lt; sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return sParameterName[1]; } }}\/\/----------------\/\/ fireworks\/\/----------------\/*$(window).load(function() { $('body').append('\u003cdiv class=\"pyro\"\u003e\n\u003cdiv class=\"before\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"after\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e'); setTimeout(function() { $('.pyro').remove(); }, 60000);});*\/jQuery(window).on('load', function () { var $ = jQuery; var $drawer = $('#mobileOfferDrawer'); var $panel = $('#mobileOfferPanel'); var $toggle = $drawer.find('.mobile-offer-toggle'); var $sliderSlot = $('#mobileOfferSliderSlot'); var $mobileSlider = $('#OpenCart_QW7TsphX'); \/* * Storage configuration. * * The saved drawer choice remains valid for one hour. *\/ var storageKey = '_mobile_offer_drawer_state'; var storageDuration = 30 * 60 * 1000; \/** * Stop if the required drawer or slider does not exist. *\/ if (!$drawer.length || !$mobileSlider.length) { return; } \/** * The floating drawer is mobile-only. *\/ if (!window.matchMedia('(max-width: 767px)').matches) { return; } \/** * Save the visitor's current choice with an expiry time. * * isOpen: * true = drawer was opened * false = drawer was closed *\/ function saveDrawerState(isOpen) { var savedState = { isOpen: isOpen, expiresAt: Date.now() + storageDuration }; try { localStorage.setItem( storageKey, JSON.stringify(savedState) ); } catch (error) { \/* * Continue normally if localStorage is blocked * or unavailable in the visitor's browser. *\/ } } \/** * Read the saved drawer state. * * Returns: * true = previously opened * false = previously closed * null = no valid saved preference *\/ function getSavedDrawerState() { try { var storedValue = localStorage.getItem(storageKey); if (!storedValue) { return null; } var savedState = JSON.parse(storedValue); if ( typeof savedState.expiresAt !== 'number' || Date.now() \u0026gt;= savedState.expiresAt ) { localStorage.removeItem(storageKey); return null; } return savedState.isOpen === true; } catch (error) { try { localStorage.removeItem(storageKey); } catch (removeError) { \/* * No action is required. *\/ } return null; } } \/** * Open or close the drawer. * * rememberChoice should be true only when the visitor * manually changes the drawer state. *\/ function setDrawerState(isOpen, rememberChoice) { $drawer.toggleClass('is-open', isOpen); $toggle.attr( 'aria-expanded', isOpen ? 'true' : 'false' ); $toggle.attr( 'aria-label', isOpen ? 'Close produ offers' : 'Open produ offers' ); $toggle.attr( 'title', isOpen ? 'Close produ offers' : 'Open produ offers' ); $panel.attr( 'aria-hidden', isOpen ? 'false' : 'true' ); \/** * Save only deliberate visitor actions. *\/ if (rememberChoice) { saveDrawerState(isOpen); } \/** * Allow Revolution Slider to recalculate after * becoming visible. *\/ if (isOpen) { window.setTimeout(function () { $(window).trigger('resize'); }, 100); } } \/** * Move the existing Revolution Slider module into * the mobile floating drawer. *\/ $mobileSlider.appendTo($sliderSlot); $('body').addClass('mobile-offer-ready'); \/** * Toggle the drawer when the arrow is pressed. * * The visitor's choice is saved for one hour. *\/ $toggle.on('click', function () { var isCurrentlyOpen = $drawer.hasClass('is-open'); setDrawerState( !isCurrentlyOpen, true ); }); \/** * Escape closes the drawer and remembers the choice * for one hour. *\/ $(document).on('keyup.mobileOffer', function (event) { if ( event.key === 'Escape' \u0026amp;\u0026amp; $drawer.hasClass('is-open') ) { setDrawerState(false, true); } }); \/** * Read the remembered visitor preference. * * No valid saved state: * Open by default. * * Saved state exists: * Restore the visitor's previous choice. *\/ var savedDrawerState = getSavedDrawerState(); var initialDrawerState = savedDrawerState === null ? true : savedDrawerState; setDrawerState(initialDrawerState, false); \/** * Let Revolution Slider recalculate after it has been * moved and its initial state has been applied. *\/ window.setTimeout(function () { $(window).trigger('resize'); }, 100);}); scroll_to_top (); #oosn_info_text, #opt_info{padding-top:0px;color:#F00;}#msgoosn{color:green;}.notify_form_success{color:green;}.notify_form_warning{color:orange;}.notify_form_error{color:red;}.notify-button { background-color: #EE6514 !important;}.notify-button:hover { background-color: #BB4A07 !important;}.notify-info-block { padding-right: 25px;} The produ is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the produ is available. Name Email Comments Subscribe to this produ function notifypop(i) { $(\"#pid\").val(i), $(\"#msgoosn\").html(\"\"), $.magnificPopup.open({ items: {src: \"#notifyform\"}, type: \"inline\", removalDelay: 800, midClick: !0, callbacks: { beforeOpen: function() { this.st.mainClass = \"mfp-3d-unfold\" } } })} \/\/ anwar: remove this to fix the problem when removing a produ from the cart, it was not refreshing\/\/var cart = {var cart_ignore_this_var = {'add': function(product_id, quantity) {$.ajax({url: 'index.php?route=checkout\/cart\/add',type: 'post',data: 'product_id=' + product_id + '\u0026amp;quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {$('.alert, .text-danger').remove();if (json['hberror']){if (json['hberror']['oosn']) { notifypop(json['hberror']['oosn']);return false;}} if (json['redire']) {location = json['redire'];}if (json['success']) {$('#content').parent().before('\u003cdiv class=\"alert alert-success\"\u003e\n\u003ci class=\"fa fa-check-circle\"\u003e\u003c\/i\u003e ' + json['success'] + '\u003cbutton type=\"button\" class=\"close\" data-dismiss=\"alert\"\u003e×\u003c\/button\u003e\n\u003c\/div\u003e');\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);$('html, body').animate({ scrollTop: 0 }, 'slow');$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}}});},'update': function(key, quantity) {$.ajax({url: 'index.php?route=checkout\/cart\/edit',type: 'post',data: 'key=' + key + '\u0026amp;quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);if (getURLVar('route') == 'checkout\/cart' || getURLVar('route') == 'checkout\/checkout') {location = 'index.php?route=checkout\/cart';} else {$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}},error: function(xhr, ajaxOptions, thrownError) {alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);}});},'remove': function(key) {$.ajax({url: 'index.php?route=checkout\/cart\/remove',type: 'post',data: 'key=' + key,dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);if (getURLVar('route') == 'checkout\/cart' || getURLVar('route') == 'checkout\/checkout') {location = 'index.php?route=checkout\/cart';} else {$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}},error: function(xhr, ajaxOptions, thrownError) {alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);}});}} #oosn_info_text, #opt_info{padding-top:0px;color:#F00;}#msgoosn{color:green;}.notify_form_success{color:green;}.notify_form_warning{color:orange;}.notify_form_error{color:red;}.notify-button { background-color: #EE6514 !important;}.notify-button:hover { background-color: #BB4A07 !important;}.notify-info-block { padding-right: 25px;} The produ is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the produ is available. Name Email Comments Subscribe to this produ function notifypop(i) { $(\"#pid\").val(i), $(\"#msgoosn\").html(\"\"), $.magnificPopup.open({ items: {src: \"#notifyform\"}, type: \"inline\", removalDelay: 800, midClick: !0, callbacks: { beforeOpen: function() { this.st.mainClass = \"mfp-3d-unfold\" } } })} \/\/ anwar: remove this to fix the problem when removing a produ from the cart, it was not refreshing\/\/var cart = {var cart_ignore_this_var = {'add': function(product_id, quantity) {$.ajax({url: 'index.php?route=checkout\/cart\/add',type: 'post',data: 'product_id=' + product_id + '\u0026amp;quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {$('.alert, .text-danger').remove();if (json['hberror']){if (json['hberror']['oosn']) { notifypop(json['hberror']['oosn']);return false;}} if (json['redire']) {location = json['redire'];}if (json['success']) {$('#content').parent().before('\u003cdiv class=\"alert alert-success\"\u003e\n\u003ci class=\"fa fa-check-circle\"\u003e\u003c\/i\u003e ' + json['success'] + '\u003cbutton type=\"button\" class=\"close\" data-dismiss=\"alert\"\u003e×\u003c\/button\u003e\n\u003c\/div\u003e');\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);$('html, body').animate({ scrollTop: 0 }, 'slow');$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}}});},'update': function(key, quantity) {$.ajax({url: 'index.php?route=checkout\/cart\/edit',type: 'post',data: 'key=' + key + '\u0026amp;quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);if (getURLVar('route') == 'checkout\/cart' || getURLVar('route') == 'checkout\/checkout') {location = 'index.php?route=checkout\/cart';} else {$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}},error: function(xhr, ajaxOptions, thrownError) {alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);}});},'remove': function(key) {$.ajax({url: 'index.php?route=checkout\/cart\/remove',type: 'post',data: 'key=' + key,dataType: 'json',beforeSend: function() {$('#cart \u0026gt; button').button('loading');},complete: function() {$('#cart \u0026gt; button').button('reset');},success: function(json) {\/\/ Need to set timeout otherwise it wont update the totalsetTimeout(function () {$('#cart \u0026gt; button').html('\u003cspan id=\"cart-total\"\u003e\u003ci class=\"fa fa-shopping-cart\"\u003e\u003c\/i\u003e ' + json['total'] + '\u003c\/span\u003e');}, 100);if (getURLVar('route') == 'checkout\/cart' || getURLVar('route') == 'checkout\/checkout') {location = 'index.php?route=checkout\/cart';} else {$('#cart \u0026gt; ul').load('index.php?route=common\/cart\/info ul li');}},error: function(xhr, ajaxOptions, thrownError) {alert(thrownError + \"\\r\\n\" + xhr.statusText + \"\\r\\n\" + xhr.responseText);}});}} (function(){function c(){var b=a.contentDocument||(a.contentWindow\u0026amp;\u0026amp;a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML=\"window.__CF$cv$params={r:'a21d335f4d3b32ac',t:'MTc4NTE3MTYyOQ=='};var a=document.createElement('script');a.src='\/cdn-cgi\/challenge-platform\/scripts\/jsd\/main.js';document.getElementsByTagName('head')[0].appendChild(a);\";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState\u0026amp;\u0026amp;(document.onreadystatechange=e,c())}}}})();\n\u003cscript type=\"application\/ld+json\"\u003e{\"@context\": \"https:\/\/schema.org\/\", \"@type\": \"Product\", \"name\": \"Razer Viper V4 Pro Wireless Esports Gaming Mouse – 50g Ultra Lightweight, Fast \u0026 Precise, 50K DPI Optical Sensor, 8K Polling, Gen-4 Optical Switches, Scroll Wheel, USB-C Charging, for PC \u0026 Mac – White\", \"sku\": \"RZ01-05630200-R3G1-6c4affa7\", \"offers\": {\"@type\": \"Offer\", \"priceCurrency\": \"JOD\", \"price\": \"141.900\", \"availability\": \"https:\/\/schema.org\/InStock\", \"url\": \"https:\/\/citycenter.jo\/computer-hardware-peripherals\/razer-viper-v4-pro-wireless-esports-gaming-mouse-50g-ultra-lightweight-fast-precise-50k-dpi-optical-sensor-8k-polling-gen-4-optical-switches-scroll-wheel-usb-c-charging-for-pc-mac-white\"}, \"brand\": {\"@type\": \"Brand\", \"name\": \"Razer\"}, \"image\": \"https:\/\/image.citycenter.jo\/cachewebp\/catalog\/002026\/42026\/V10720269-1200x1200.webp\"}\u003c\/script\u003e\u003c\/tpopt.minfullscreenheight\u003e\u003c\/tpopt.bw\u003e","brand":"CT","offers":[{"title":"Default Title","offer_id":47631638823061,"sku":"RZ01-05630200-R3G1-6c4affa7","price":141.9,"currency_code":"JOD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0630\/6018\/1141\/files\/V10720269-1200x1200_618e994d-a0a8-4442-b351-a1a2417adafc.webp?v=1785178036","url":"https:\/\/www.compume.jo\/products\/razer-viper-v4-pro-wireless-esports-gaming-mouse-50g-ultra-lightweight-fast-precise-50k-dpi-optical-sensor-8k-polling-gen-4-optical-switches-scroll-wheel-usb-c-charging-for-pc-mac-white-3","provider":"CompuMe","version":"1.0","type":"link"}