}else if('categories'==obj.attr('type_type')){ // delete(search_url['keywords']); if(obj.attr('type_value').length===0){ search_url['placeaddress'] = ""; search_url['categoryname'] = ""; search_url['categoryName'] = ""; search_url['categorysName'] = ""; search_url['categories'] = ""; search_url['category'] = ""; search_url['cities'] = ""; search_url['city'] = ""; }else{ search_url['categorysName'] = ""; search_url['districtsName'] = ""; } }else if('onlybooking'==obj.attr('type_type')){ if(obj.attr('type_value').length===0){ delete(search_url['date']) } } else if('cities'==obj.attr('type_type')){ delete(search_url['placeaddress']); delete(search_url['tance']); } else if('tance'==obj.attr('type_type')){ delete(search_url['placeaddress']); delete(search_url['cities']); } var show_str = obj.html(); $("*[type_type="+obj.attr('type_type')+"]").removeClass('reign'); if(obj.attr('type_value') != '') { obj.addClass('reign'); } $("#"+obj.attr('type_type')+" span").html(show_str); search_url["page"]=1; is_zero=1; if (true) { const currentUrl = window.location.href; const mapParamIndex = currentUrl.indexOf('&map=1'); if (mapParamIndex !== -1) { console.log('The &map=1 parameter exists in the URL.'); // Code to execute when it exists } else { console.log('The &map=1 parameter does not exist in the URL.'); // Code to execute when it doesn't exist delete (search_url['map']) } } roadshow(); } function showsel(target){ console.log("showsel()") $(".filchild").hide(); $("#"+target).show(); } function reflect(ele){ $(ele).toggleClass("reflect"); offset = parseInt($(ele).attr("tran")); now = new Date(); time = Math.floor(now.getTime()/1000); minutes = now.getMinutes(); diff = 15*Math.ceil(minutes/15)-minutes; switch (offset){ case 0: //4 hours delete(search_url["start"]); delete(search_url["end"]); break; case 1: //1 hour case 2: //2 hour case 3: //3 hour search_url["start"]=time+diff*60; search_url["end"]=time+offset*3600+diff*60; search_url["onlybooking"]=1; break; default: alert("Invalid selection"); } $("#timecat").addClass("hovered"); //$("#cfmbtn").addClass("se_afbtn"); if($('.selTime_btn.CselTime.reflect').length==0){ $('#timecat').removeClass("hovered") } refresh_Input_Box("ft3d") } function swipe1(id,dir){ element = document.getElementById(id); console.log(element); console.log(dir); dx = dir*372; if (element==null) return; element.scrollBy(dx,0); z = $("#"+id+"holder .arrow_l"); $("#"+id+"holder .scrol_arrow_l")[0].hidden = !(element.scrollLeft); $("#"+id+"holder .scrol_arrow_r")[0].hidden = !(element.scrollWidth!=element.scrollLeft+element.clientWidth); } function fakesubmit(){ if (typeof(search_url["city"])!="undefined" && search_url["city"]!=''){ delete(search_url["placeaddress"]); } roadshow(); } function resetFilter(){ history.pushState({}, "Search Page", "/mobile/index.php?act=search2"); $("#citycat").removeClass('hovered') $("#pricecat").removeClass('hovered') $("#sortcat").removeClass('hovered') $("#shoptypecat").removeClass('hovered') $("#bookpaycat").removeClass('hovered') $("#service_locationcat").removeClass('hovered') $("#merchantType").removeClass('hovered') $('.tancelement').removeClass('hovered') $('.cityselement').removeClass('reflect') $('.priceselement').removeClass('reflect') $('.sortselement').removeClass('reflect') $('.shoptypeselement').removeClass('reflect') $('.bookpayselement').removeClass('reflect') $('.selTime_btn').removeClass('reflect') $('.service_locationelement').removeClass('reflect') search_url["category"] = null; search_url["bookpays"] = null; search_url["city"] = null; search_url["cities"] = null; search_url["merchantType"] = null; search_url["prices"] = null; search_url["shoptypes"] = null; search_url["sorts"] = null; search_url["start"] = null; search_url["end"] = null; search_url["service_location"] = null; target.state.value.min='65' let slider2 = 5825; target.state.value.max=slider2 > 96? 96 : slider2; target.forceUpdate() $(".filter_search_btn").html(`搜尋`) } function rbooking(){ if (search_url==null) return; //error if (search_url["act"]=="search"){ search_url["act"]="search2"; } else{ search_url["act"]="search"; if (search_url["range"]!=null) delete(search_url["range"]); } roadshow(); } function groupselect(group,value,ele){ var allowLoad; if(value === ""){ switch (group) { case 'bookpays': //document.querySelector('#unspecified_bookpay_45c8fbf1').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'shoptypes': //document.querySelector('#unspecified_shopType_546c').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'merchantType': //document.querySelector('#unspecified_shopType_9369dff').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'sorts': $("."+group+"element").removeClass("reflect"); break case 'prices': //document.querySelector('#unspecified_shopType_f4f11').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'service_location': $("."+group+"element").removeClass("reflect"); break } $(ele).addClass("reflect"); allowLoad = false console.log("3se2") }else{ allowLoad = true switch (group) { case 'bookpays': allowLoad = false //document.querySelector('#unspecified_bookpay_45c8fbf1').classList.remove('reflect') //$("."+group+"element").removeClass("reflect"); if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ if($("."+group+"element").hasClass("reflect")){ $("."+group+"element").removeClass("reflect"); } ele.classList.add("reflect"); } break case 'shoptypes': //document.querySelector('#unspecified_shopType_546c').classList.remove('reflect') break case 'sorts': document.querySelector('#reset').classList.remove('reflect') $("."+group+"element").removeClass("reflect"); break case 'merchantType': //document.querySelector("#unspecified_shopType_9369dff").classList.remove('reflect') break case 'prices': //document.querySelector('#unspecified_shopType_f4f11').classList.remove('reflect') break case 'service_location': //$("."+group+"element").removeClass("reflect"); allowLoad = false if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ if($("."+group+"element").hasClass("reflect")){ $("."+group+"element").removeClass("reflect"); } ele.classList.add("reflect"); } break } console.log("fd5r") } if (allowLoad){ if (ele.classList.contains("reflect")){ ele.classList.remove("reflect"); }else{ ele.classList.add("reflect"); } } if (value!=""){ if (group=="shoptypes"){ search_url["act"]=="search2"; } search_url[group]=value; $("#"+group+"cat").addClass("hovered"); }else{ if (group=="shoptypes"){ search_url["act"]==""; } delete(search_url[group]); $("#"+group+"cat").removeClass("hovered"); } refresh_Input_Box("2ws4") } h=0; /**/ "use strict"; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var FilterTimeRangerApp = function (_React) { _inherits(FilterTimeRangerApp, _React); function FilterTimeRangerApp(props) { _classCallCheck(this, FilterTimeRangerApp); console.log(props); var _this = _possibleConstructorReturn(this, _React.call(this, props)); _this.state = { value: { min: 65, max: 5825 > 96? 96 : 5825} }; return _this; } FilterTimeRangerApp.prototype.render = function render() { var _this2 = this; return React.createElement( "form", { className: "form" }, React.createElement(InputRange, { maxValue: 96, minValue: 65, formatLabel: function formatLabel(value) { h = Math.floor(value/4); m = 15*(value%4); if (h<10){ h = "0"+h; } if (m<10){ m = "0"+m; } return h+":"+m; }, value: this.state.value, onChange: function onChange(value) { return _this2.setState({ value: value }); }, onChangeComplete: function onChangeComplete(value) { startstamp = 1767196800; range = 0; if (typeof(search_url["range"]!="undefined")){ if (search_url["range"]>1) range = (search_url["range"]-1) * 86400; } search_url["start"] = startstamp + value.min/4 *3600 + range; search_url["end"] = startstamp + value.max/4 *3600 + range; $("#cfmbtn").addClass("se_afbtn"); refresh_search_button_result_number("5rt6"); return console.log(value); } }) ); }; return FilterTimeRangerApp; }(React.Component); if (!!document.getElementById("timeSelectionBarApp")){ target = ReactDOM.render( React.createElement(FilterTimeRangerApp, null), document.getElementById("timeSelectionBarApp") ); target.id = "slider1"; } /**/ // sourceURL=pen.js

【 BookFun 推介】2026港九新界商戶精選:港島按摩、九龍泰式按摩、新界秀髮造型。另有美甲美顏、冷氣清洗 | 即時預約

feature graphic desktop
feature graphic desktop

2026香港推介

想搜索2026香港店最優惠的價格? Bookfun提供最即時的香港店預約服務, 成為會員後更享有香港店各種折扣及回贈優惠。

香港有多種玩樂休閒類別, 當中自然少不了優質店, 你需要 您想得到的我們都有, 總有一類滿足你的需求。

部分店更推出試用優惠和特價優惠等, 甚至最高更可獲25%回贈或5折優惠, 讓你享最著數價格!支持本土店,總有一間在你附近,BookFun即時幫你輕鬆預約!