Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Ошибка загрузки CSS по событию... (https://javascript.ru/forum/events/29693-oshibka-zagruzki-css-po-sobytiyu.html)

Deff 07.07.2012 20:33

Поправил if(W2!=false&&(W2-W)==0){alert(W)}

Vision 07.07.2012 20:34

Deff,
смысл операций я так и не понял, но факт в том что ни одного алерта так и не вылезло. ЗЫ на 10й строке лишняя закрывающая скобка
полный код:
Код:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Demo</title>
    <link rel="stylesheet" type="text/css" href="" />
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <style>#changeStyle img{border:solid 2px transparent;}
    .STYLselect {border-color:red!important;}
    </style>
</head>
<body>
<script type="text/javascript">
var linkStyles = '<link rel="stylesheet" type="text/css" href="';

function setcookie(a, b, c) {
    if (c) {
        var d = new Date();
        d.setDate(d.getDate() + c);
    }
    if (a && b) document.cookie = a + '=' + b + (c ? '; expires=' + d.toUTCString() : '');
    else return false;
}

function getcookie(a) {
    var b = new RegExp(a + '=([^;]){1,}');
    var c = b.exec(document.cookie);
    if (c) c = c[0].split('=');
    else return false;
    return c[1] ? c[1] : false;
}

function clearSet(L) {
    if (L) {
        setcookie("changeStyle", L, 30);
        $("link[rel='stylesheet']:first").replaceWith(linkStyles + L + '"/>');
    }
};
var Lmem = getcookie("changeStyle");
clearSet(Lmem);
</script>
<div id="changeStyle" style="top:0; left: 3px; position:fixed!important;">
<img src="http://www.10pix.ru/img1/3444/5439522.jpg" alt="1.css"/>
<br>
<img src="http://www.10pix.ru/img1/3492/5439523.jpg" alt="2.css"/>
<br>
</div>
<script type="text/javascript">
var W=false;
function TstWidth() {
  var s=100; //
  var W2=false;
  if($(".some").length){var W2 = $(".some").width();return true;
    if(W2!=false&&(W2-W)==0){alert(W)}
  }
  timerId01=setTimeout(function(){TstWidth()},s);return;}

    $("#changeStyle img[alt='" + Lmem + "']").addClass("STYLselect");
    $('#changeStyle img[alt]').click(function () {
        L = $(this).attr("alt");
        $('#changeStyle img[alt]').removeClass("STYLselect");
        $(this).addClass("STYLselect");
        clearSet(L);
        TstWidth()
    });
</script>
<br /><br /><br /><br /><br />
<div class="some"></div>
</body>
</html>


Deff 07.07.2012 20:46

Vision,
Смысл такой - из клика переустановки - запускаем
1. Проверку наличия самого элемента с тестируемой длинной
$(".some").length
если да -
===================
увидел (недочёты

var W=false;
function TstWidth() {
  var s=100; //
  var W2=false;
  if($(".some").length){
    var W2 = $(".some").width();
    if(W2!=false&&W2==W){alert(W);return true;}
    W=W2;
  } 
 timerId01=setTimeout(function(){TstWidth()},s);return;}

Vision 07.07.2012 21:49

Спасибо за старания, реализовал нужную мне обработку просто переключением классов. Проще включить нужный класс, чем подгрузить стиль. Неудобно, учитывая что все стили приходится одновременно грузить, а используются только часть из них. Но это работает замечательно!


Часовой пояс GMT +3, время: 09:32.