-1

Не работает нижеприведенный код на jQuery. Помогите его переделать под jQuery

function hide_div() {
   //var rnd_200 = Math.round(Math.random()*4) + 7; swap_img('loader_' + rnd_200);
   clearTimeout(show_delay); show_delay = null;
   if ( ! obj_float_div ) return;
   obj_float_div.style.visibility = 'hidden';
   obj_float_div.style.left = "-3000px";
   obj_float_div = false;
}

var IE = (document.all);
var NC = (document.layers);
var Opera = (document.getElementById);
function  getWidth()
{
    if (IE) return document.body.clientWidth;
    if (NC) return window.innerWidth;
    if (Opera) return document.body.offsetWidth;
    return 1024;
}

var cmw;
var hfw;
var ww;

function recount()
{
    var ttt;
    if (window.getSize().x>=1690)
    {
        ttt=8;
    }
    else if (window.getSize().x>=1260)
    {
        ttt=6;
    }
    else
    {
        ttt=4;
    }
    cmw=ttt*205;
    hfw=cmw-5;
    ww=hfw+30;
}


window.onload=resizecontent;
window.onresize=resizecontent;

function resizecontent() 
{
    recount();
    if ($('header').style) $('header').style.width=hfw+'px';
    $('footer').style.width=hfw+'px';
    if (document.getElementById('contentmain'))
    {
        $('contentmain').style.width=cmw+'px';
    }
    else
    {
        $('wrapper').style.width=ww+'px';
    }
    if ($('imagezoom_overlay'))
    {
        $('imagezoom_overlay').style.width = document.body.offsetWidth + "px";
        $('imagezoom_overlay').style.height = window.getScrollSize().y + "px";
    }
}
6
  • 1
    А как правильно это сделать? Не могли бы написать? А то я совсем не шарю. Спасибо.
    – Дани
    8 фев 2012 в 17:18
  • 1
    А вообще бразуер показывает эту ошибку: Uncaught exception: TypeError: 'window.getSize' is not a function Error thrown at line 32, column 1 in recount() in site.ru/test/size2.js: if (window.getSize().x>=1690) called from line 55, column 1 in resizecontent() in site.ru/test/size2.js: recount();
    – Дани
    8 фев 2012 в 17:21
  • 1
    Вы можете написать какой Вам нужен результат?
    – Oleg
    8 фев 2012 в 17:42
  • 1
    В общем это функция ресайза страницы. При определенном разрешении экрана, она ресайзиться.
    – Дани
    8 фев 2012 в 17:44
  • 3
    'window.getSize' is not a function какбэ намекает нам, где суть проблемы. Нет такой функции, getSize (область имен, по умолчанию, как раз window). А вообще код — ад, погибель и Индия. Его бы переписать, если по-уму...
    – drdaeman
    9 фев 2012 в 0:42

2 ответа 2

3

$('imagezoom_overlay').style - по-моему это и есть ошибка, воспользуйтесь jQuery.width() и jQuery.height() и селектор id выглядит так: $('#yourId')


function resizecontent() 
{
    recount();
    $('#header').width(hfw);
    $('#footer').width(hfw);
    if ($('#contentmain').length>0)
    {
        $('#contentmain').width(cmw);
    }
    else
    {
        $('#wrapper').width(ww);
    }
    if ($('#imagezoom_overlay').length>0)
    {
        $('#imagezoom_overlay').width(document.body.offsetWidth);
        $('#imagezoom_overlay').height(window.getScrollSize().y);
    }
}

если в дальнейшем будут ошибки, постарайтесь самостоятельно воспользоваться документацией, она очень подробная

6
  • 1
    function $(obj) { return document.getElementById(obj); }
    – Oleg
    8 фев 2012 в 17:24
  • 1
    uWeb. Спасибо за ответ. Но куда его вставлять? Я вообще не бум-бум. Spectre. Код не работает...
    – Дани
    8 фев 2012 в 17:28
  • 1
    я исправил jQuery-часть кода, надеясь что header, footer, contentmain, wrapper и imagezoom_overlay - это id-шники, но вы сами написали, что ошибки есть и в других местах
    – Spectre
    8 фев 2012 в 17:31
  • 1
    Будь добры, пожалуйста, исправьте и другие ошибки... Я просто блин уже изучаю, замучался все туда сюда менять...
    – Дани
    8 фев 2012 в 17:36
  • 1
    Есть движок сайта на livestreet. Есть шаблон на MooTools. Этот код там работает отлично! Есть такой же шаблон только на jQuery. Этот код там не работает. Видимо конфликт какой-то, либо этот код не принимается jQuery и ошибку выдает. Вот.
    – Дани
    8 фев 2012 в 17:49
2

Вижу кучу ошибок, потому что кто-то не курит маны.

  1. Не $('someid'), а $('#someid').
  2. Не $('#someid').style.width = x+'px';, а $('#someid')[0].style.width = x+'px'; , $('#someid').css({'width': x+'px'}); или $('#someid').width(x); .
  3. В функции hideDiv() используются переменные, не представленные в листинге.
  4. Определение браузеров кривое: зачем-то присутствует NC, Opera всегда определяется.
  5. getScrollSize() вообще взята из mootools. Если правильно понимаю, это должно было быть window.innerHeight || document.body.clientHeight .
4
  • Спасибо за ответ. В общем переделал нижепредставденный код, но все равно не работает... Что не так? var cmw; var hfw; var ww; function recount() { var ttt; if (window.getSize().x>=1690) { ttt=8; } else if (window.getSize().x>=1260) { ttt=6; } else { ttt=4; } cmw=ttt*205; hfw=cmw-5; ww=hfw+30; }
    – Дани
    9 фев 2012 в 9:47
  • window.onload=resizecontent; window.onresize=resizecontent;
    – Дани
    9 фев 2012 в 9:47
  • function resizecontent() { recount(); $('#header').css({'width': hfw+'px'}); $('#footer').css({'width': hfw+'px'}); if ($('#contentmain').length>0) { $('#contentmain').css({'width': cmv+'px'}); } else { $('#wrapper').css({'width': ww}); } if ($('#imagezoom_overlay').length>0) { $('#imagezoom_overlay').width(document.body.clientWidth); $('#imagezoom_overlay').height(window.innerHeight().y); } }
    – Дани
    9 фев 2012 в 9:47
  • > Что не так? Все, что связано с этим: [howtocreate.co.uk/tutorials/javascript/browserwindow][1]. [1]:howtocreate.co.uk/tutorials/javascript/browserwindow
    – ling
    9 фев 2012 в 9:56

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.