ter(){ if (filter_shop_recent_record_counter>5){ return null; } filter_shop_recent_record_counter = filter_shop_recent_record_counter + 1; if(xhr_refresh_shop_recent_record_filter!=="" && xhr_refresh_shop_recent_record_filter!==undefined){ xhr_refresh_shop_recent_record_filter.abort() } const lang = '0'; const get_value = `?type=shop&lang=${ lang }&rs_limit=10` xhr_refresh_shop_recent_record_filter = $.ajax({ type:"GET", url:"/api_v1/public/web/1.0/1.1/recently"+get_value, dataType:"JSON", beforeSend:function(){ }, success:function(res){ if(res.status===200){ shop_recent_record_data = res.result if(shop_recent_record_data!==undefined && shop_recent_record_data.length>0){ $("#shop_recently_record").show(); $("#clear_button_of_shop_recent_list").show(); load_shop_recent_record_data() }else{ $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }else{ $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }, complete:function(){ }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#shop_recently_record").hide(); $("#clear_button_of_shop_recent_list").hide(); refresh_shop_recent_record_filter() } }) } function refresh_service_recent_record_filter(){ if (filter_service_recent_record_counter>5){ return null; } filter_service_recent_record_counter = filter_service_recent_record_counter + 1; if(xhr_refresh_service_recent_record_filter!=="" && xhr_refresh_service_recent_record_filter!==undefined){ xhr_refresh_service_recent_record_filter.abort() } const lang = '0'; const get_value = `?type=service&lang=${ lang }&rs_limit=10` xhr_refresh_service_recent_record_filter = $.ajax({ type:"GET", url:"/api_v1/public/web/1.0/1.1/recently"+get_value, dataType:"JSON", beforeSend:function(){ }, success:function(res){ if(res.status===200){ service_recent_record_data = res.result if(service_recent_record_data!==undefined && service_recent_record_data.length>0){ $("#service_recently_record").show(); $("#clear_button_of_service_recent_list").show(); load_service_recent_record_data() }else{ $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }else{ $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }, complete:function(){ }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#service_recently_record").hide(); $("#clear_button_of_service_recent_list").hide(); refresh_service_recent_record_filter() } }) } function load_shop_recent_record_data() { $("#search_record_shop_list").html(""); shop_recent_record_data.forEach((element)=>{ var html = `
  • ${ element.placeaddress }`; if(element.placeaddress && element.keyword){ html += ` - ` } html +=`${ element.keyword }
  • ` $("#search_record_shop_list").append(html); }) } function load_service_recent_record_data() { $("#search_record_service_list").html(""); service_recent_record_data.forEach((element)=>{ var html = `
  • ${ element.placeaddress }`; if(element.placeaddress && element.keyword){ html += ` - ` } html +=`${ element.keyword }
  • ` $("#search_record_service_list").append(html); }) } function select_distance(ele, key) { $('#citysel *').removeClass('reflect').removeClass('hovered') groupselect('cities', '', ele) groupselect('tance', key, ele) } function select_city(ele, key) { $('.cityselement').hide(); $('.parent'+key).show() } function all_city_fun(ele, key) { console.log('all_city_item_rf3dr') search_url['cities'] = key delete (search_url['tance']) $('.nearby').removeClass('reflect') $('#tancebtn').removeClass('hovered') //$('.areachild').removeClass('reflect') //$('.tancelement').removeClass('hovered') //ele.toggleClass("reflect") if($('.all_cityelement' + key).hasClass("reflect")){ $('.all_cityelement' + key).removeClass("reflect") $('.childParent' + key).removeClass('reflect') }else{ $('.all_cityelement' + key).addClass("reflect") $('.childParent' + key).addClass('reflect') } //$('#super' + key).toggleClass("reflect") $('#citycat').addClass('hovered') //$("#cfmbtn").addClass("se_afbtn"); refreshSuperArea() refresh_Input_Box("cc3r") } function one_city_fun(ele, parentId, childId) { console.log('one_city_item_rf6dr') search_url['cities'] = childId console.log("changed to page 1"); search_url["page"] = 1 groupselect('tance', '', this) $('.nearby').removeClass('reflect') $('#tancebtn').removeClass('hovered') ele.toggleClass("reflect") if($('.childParent'+parentId).length == $('.childParent'+parentId+'.reflect').length){ $('.all_cityelement' + parentId).addClass('reflect') }else{ $('.all_cityelement' + parentId).removeClass('reflect') } //$('.tancelement').removeClass('hovered') //$('#super' + parentId).addClass('hovered') $('#citycat').addClass('hovered') refreshSuperArea() refresh_Input_Box("6yf4") } function refreshSuperArea(){ if($('.parent1.reflect').length===0){ $('#super1').removeClass('hovered') }else{ $('#super1').addClass('hovered') } if($('.parent2.reflect').length===0){ $('#super2').removeClass('hovered') }else{ $('#super2').addClass('hovered') } if($('.parent3.reflect').length===0){ $('#super3').removeClass('hovered') }else{ $('#super3').addClass('hovered') } if($('.parent4.reflect').length===0){ $('#super4').removeClass('hovered') }else{ $('#super4').addClass('hovered') } if($('.parent88.reflect').length===0){ $('#super88').removeClass('hovered') }else{ $('#super88').addClass('hovered') } refresh_Input_Box("refreshSuperArea"); } function refresh_Input_Box(track_code){ console.log(`Track Code:${ track_code }`) var isSelected = false; //Area - nearby var temp_store = Array() $('.nearby.reflect').each(function(ele){ var val = $('.nearby.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) //$("#nearby").val(temp_store.join(",")) if(temp_store.length>0){search_url['tance'] = temp_store.join(",");} else{delete(search_url['tance']);} //Area - cities var temp_store = Array() $('.cityselement.reflect').each(function(ele){ if(!$('.cityselement.reflect')[ele].classList.contains('nearby')){ var val = $('.cityselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } } }) $("#cities").val(temp_store.join(",")) if(temp_store.length>0){search_url['cities'] = temp_store.join(",");} else{delete(search_url['cities']);} //Price - prices var temp_store = Array() $('.priceselement.reflect').each(function(ele){ var val = $('.priceselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#prices").val(temp_store.join(",")) if(temp_store.length>0){search_url['prices'] = temp_store.join(",");} else{delete(search_url['prices']);} //Sort - sorts var temp_store = Array() $('.sortselement.reflect').each(function(ele){ var val = $('.sortselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#sorts").val(temp_store.join(",")) if(temp_store.length>0){search_url['sorts'] = temp_store.join(",");} else{delete(search_url['sorts']);} //Offer - shoptypes var temp_store = Array() $('.shoptypeselement.reflect').each(function(ele){ var val = $('.shoptypeselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#shoptypes").val(temp_store.join(",")) if(temp_store.length>0){search_url['shoptypes'] = temp_store.join(",");} else{delete(search_url['shoptypes']);} if(false!=true){ if($('.shoptypeselement.reflect').length>0) { search_url["onlybooking"] = 1 $("#online_booking_btn").css("background-color","#FAEFEF") $("#online_booking_btn").find("span").addClass("reign") }else{ delete(search_url["onlybooking"]) $("#online_booking_btn").css("background-color","#F3F3F4") $("#online_booking_btn").find("span").removeClass("reign") } } //Payment Method - bookpays var temp_store = Array() $('.bookpayselement.reflect').each(function(ele){ var val = $('.bookpayselement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#bookpays").val(temp_store.join(",")) if(temp_store.length>0){search_url['bookpays'] = temp_store.join(",");} else{delete(search_url['bookpays']);} //Service Location var temp_store = Array() $('.service_locationelement.reflect').each(function(ele){ var val = $('.service_locationelement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#service_location").val(temp_store.join(",")) if(temp_store.length>0){search_url['service_location'] = temp_store.join(",");} else{delete(search_url['service_location']);} //Merchant Type - merchantType var temp_store = Array() $('.merchantTypeelement.reflect').each(function(ele){ var val = $('.merchantTypeelement.reflect')[ele].getAttribute('value') if(val!=null){ temp_store.push(val) isSelected = true } }) $("#merchantType").val(temp_store.join(",")) if(temp_store.length>0){search_url['merchantType'] = temp_store.join(",");} else{delete(search_url['merchantType']);} //Time Button $('.selTime_btn.reflect').each(function(ele){ isSelected = true }) if(isSelected){ //$("#cfmbtn").addClass("se_afbtn"); }else{ //$("#cfmbtn").removeClass("se_afbtn"); } //Time if($('.selTime_btn.CselTime.reflect').length===0){ delete(search_url["start"]); delete(search_url["end"]); } //Area if($('.cityselement.selectionBox.reflect').length===0){ $("#citycat").removeClass('hovered') }else{ $("#citycat").addClass('hovered') } //Price if($('.priceselement.selectionBox.reflect').length===0){ $("#pricecat").removeClass('hovered') }else{ $("#pricecat").addClass('hovered') } //Sort if($('.sortselement.selectionBox.reflect').length===0){ $("#sortcat").removeClass('hovered') }else{ $("#sortcat").addClass('hovered') } //Offer if($('.shoptypeselement.selectionBox.reflect').length===0){ $("#shoptypecat").removeClass('hovered') }else{ $("#shoptypecat").addClass('hovered') } //Payment Method if($('.bookpayselement.selectionBox.reflect').length===0){ $("#bookpaycat").removeClass('hovered') }else{ $("#bookpaycat").addClass('hovered') } //Merchant Type if($('.merchantTypeelement.selectionBox.reflect').length===0){ $("#merchantType").removeClass('hovered') }else{ $("#merchantType").addClass('hovered') } if($('.service_locationelement.selectionBox.reflect').length===0){ $("#service_locationcat").removeClass('hovered') }else{ $("#service_locationcat").addClass('hovered') } refresh_search_button_result_number("ee4d") } var xhr_get_result_number = ""; function refresh_search_button_result_number(track){ console.log(`Count Number: ${ track }`); if(xhr_get_result_number!=="" && xhr_get_result_number!==undefined){ xhr_get_result_number.abort() } if( (search_url['bookpays'] == "" || search_url['bookpays'] == null) && (search_url['category'] == "" || search_url['category'] == null) && (search_url['city'] == "" || search_url['city'] == null) && (search_url['cities'] == "" || search_url['cities'] == null) && (search_url['prices'] == "" || search_url['prices'] == null) && (search_url['shoptypes'] == "" || search_url['shoptypes'] == null) && (search_url['sorts'] == "" || search_url['sorts'] == null) && (search_url['tance'] == "" || search_url['tance'] == null) && (search_url['service_location'] == "" || search_url['service_location'] == null) && (search_url['start'] == "" || search_url['start'] == null || search_url['start'] == undefined) && (search_url['end'] == "" || search_url['end'] == null || search_url['end'] == undefined) ){ $(".filter_search_btn").html(`搜尋`) }else{ xhr_get_result_number = $.ajax({ type: 'GET', url: '/api_v1/public/web/1.0/1.4/place/search_result_number', data: search_url, dataType: 'json', beforeSend: function(){ $(".filter_search_btn").html(`
    `) }, success: function(data) { if(data.result.actual>0){ $(".filter_search_btn").html(`${ data.result.display } 結果`) }else{ $(".filter_search_btn").html(`0 結果`) } }, error: function(){ $(".filter_search_btn").html(`0 結果`) } }); } } function selectrange(date){ delete(search_url["range"]); if(search_url["date"]==String(date)){ delete(search_url["date"]); }else{ search_url["date"]=String(date); delete(search_url["start"]); delete(search_url["end"]); } search_url["page"]=1; is_zero=1; roadshow(); } function restartsearch(obj){ console.log("954e9616-f6f6-4ed7-842f-076b52e98b3d"); startsearch($(obj)); } function startsearch(obj){ search_url[obj.attr('type_type')]=obj.attr('type_value'); if('category'==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 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='44' let slider2 = 5804; 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: 44, max: 5804 > 96? 96 : 5804} }; return _this; } FilterTimeRangerApp.prototype.render = function render() { var _this2 = this; return React.createElement( "form", { className: "form" }, React.createElement(InputRange, { maxValue: 96, minValue: 44, 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 = 1769529600; 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即時幫你輕鬆預約!