В php разделил ip адрес пользователя (взял первые числа до точки ip адреса):
$ip = explode(".",$_SERVER['REMOTE_ADDR'])[0];
На javascript делал генератор случайных чисел от 100 до 1000:
function randomIntegerone(min, max) {
var rand = min - 0.5 + Math.random() * (max - min + 1)
rand = Math.round(rand);
return rand;
}
Подставил таким образом:
var sdivx = randomIntegerone(100, 1000)+"<?php echo $ip; ?>";
(суммировал случайное число из javascript с переменным $ip языка php)
Далее у нас атрибут id тега body переделается так:
if(document.querySelector("body").getAttribute("id") == "sdiv"){
document.querySelector("body").setAttribute("id","sdiv"+sdivx);
}
Но если кликнуть по ссылке этого тега, то наш код либо срабатывает, либо нет:
$("html").on("click","#sdiv"+sdivx+" a",
function(){
$.post("/sdivhandler.php",{subdiv:1},function(a){console.log(a)})
}
)
В компьютере (и ноутбуке) отлично работает, а вот в virtualbox (windows 8 mozilla firefox, последняя версия) и т. п. срабатывает через раз (а может и реже).
P.S. Вот так отлично работает в virtualbox (всегда alert выскакивает):
$("html").on("click","#sdiv"+sdivx+" a",
function(){
alert("hello world");
}
)
Отдельно запрос тоже отлично работает (в virtualbox):
$.post("/sdivhandler.php",{subdiv:1},function(a){console.log(a)})
Но если их вместе запустить в virtualbox то работает, то нет (в консоле ошибок нет).
Если добавить оба (первый алерт, затем запрос):
alert("hello world");
$.post("/sdivhandler.php",{subdiv:1},function(a){console.log(a)})
так сработает только алерт, запрос не будет работать.
Если сперва запрос, потом алерт:
$.post("/sdivhandler.php",{subdiv:1},function(a){console.log(a)})
alert("hello world");
То так всегда работает.
В чем причина? Что делать?