$(".appartment").each(function(){
var ap_id = $(this).attr("ap_id");
$(this).on("mouseenter", function() {
google.maps.event.trigger(Marker[ap_id], "click");
});
});
$('input[type="checkbox"]').on('change', function() {
if ($(this).prop('checked')) {
$(".appartment").off('mouseenter');
$.cookie('map-trigger-status', 'off'); // Библиотека для работы с cookies: https://github.com/carhartl/jquery-cookie
}
});
<input class="box" type="checkbox" name="1" />
$("input.box").each(function() {
var mycookie = $.cookie($(this).attr("name"));
if (mycookie && mycookie == "true") {
$(this).prop("checked", mycookie);
}
$(".row").toggleClass("on-infobox", this.checked); // добавляем on-infobox
});
$("input.box").change(function() {
$.cookie($(this).attr("name"), $(this).prop("checked"), {
path: "/",
expires: 365
});
location.reload(); // перезагрузка страницы
});
$(".on-infobox .appartment").each(function(){ // если есть on-infobox, то функция выполняется
var ap_id = $(this).attr("ap_id");
$(this).on("mouseenter", function() {
google.maps.event.trigger(Marker[ap_id], "click");
});
});
// Функция для инициализации триггера
function initTrigger() {
$(".appartment").each(function() {
var ap_id = $(this).attr("ap_id");
$(this).on("mouseenter", function() {
google.maps.event.trigger(Marker[ap_id], "click");
});
});
}
// Функция для удаления триггера
function removeTrigger() {
$(".appartment").off('mouseenter');
}
// Обработка при загрузке страницы
$(function() {
var triggerShouldBeInit = Boolean($.cookie('map-trigger-status'));
if (triggerShouldBeInit) {
initTrigger();
}
// Обработка события изменения чекбокса
$('input[type="checkbox"]').on('change', function() {
var isChecked = $(this).prop('checked');
isChecked ? removeTrigger() : initTrigger(); // Включение или отключение триггеров в зависимости от статуса чекбокса
$.cookie('map-trigger-status', !isChecked); // Запись в статус значения, обратного состоянию чекбокса.
});
});
$(".appartment").each(function() {
var ap_id = $(this).attr("ap_id");
$(this).on("mouseenter", function() {
google.maps.event.trigger(Marker[ap_id], "click");
});
});
Что то пошло не так, теперь только при первой загрузке не выполняется
var triggerShouldBeInit = $.cookie('map-trigger-status') == undefined || $.cookie('map-trigger-status');
// Инициализация состояния чекбокса
$('input[type="checkbox"]').prop('checked', !triggerShouldBeInit);
$('input[type="checkbox"]').prop('checked', !triggerShouldBeInit);
:как заставить выполняться не только просто после загрузки страницы,
function reloadApartmentList(url) {
$.ajax({
type: 'GET',
url: url,
/*data: {is_ajax: 1},*/
ajaxStart: UpdatingProcess(resultBlock, updateText),
success: function (msg) {
history.pushState( {callFrom: 'reloadApartmentList', path: url, response: msg}, null, url);
$('div.main-content-wrapper').html(msg);
$('div.rating > span > input').rating({'readOnly': true});
// smooth scroll to
var dest=0;
if($("#appartment_box").offset().top > $(document).height()-$(window).height()){
dest=$(document).height()-$(window).height();
}else{
dest=$("#appartment_box").offset().top;
}
$("html,body").animate({scrollTop:dest}, 500,"swing");
$('#update_div').remove();
$('#update_text').remove();
$('#update_img').remove();
$("input.box").each(function() {
var mycookie = $.cookie($(this).attr("name"));
if (mycookie && mycookie == "true") {
$(this).prop("checked", mycookie);
}
});
}
});
}