не получается передать переменную в jQuery

Тема в разделе "Другие языки", создана пользователем fafee, 25 дек 2010.

Модераторы: Цукер
  1. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    добрый день, есть две функции, показывающие и скрывающие элемент по его ID

    первая на jquery с эффектами плавного появления и исчезновения для жесткого заданных ID

    HTML:
    
    function fade() {
    $("#wl").fadeTo(500, 1).fadeOut(500);
    }
    function fadeup() {
    $("#wl").fadeTo(500, 1).fadeIn(500);
    }
    
    вызов первой функции
    HTML:
    onclick="javascript:fade();"

    вторая на js для переменных

    HTML:
    
    function showhide(id1) {
    	if(document.getElementById(id1).style.display=='none') {
    		document.getElementById(id1).style.display='block';
    	} else {
    		document.getElementById(id1).style.display='none';
    	}
    }
    
    вызов второй функции
    HTML:
    onclick="javascript:showhide('переменная');"
    незадача в том, что я не могу передавать в 1 функцию переменные, потому что не знаю как их туда подставить, то есть она работает только с твердо заданными ID, а хочется применять при динамическом выводе, например так

    HTML:
    
    function fade() {
    $("(переменная)").fadeTo(500, 1).fadeOut(500);
    }
    function fadeup() {
    $("(переменная)").fadeTo(500, 1).fadeIn(500);
    }
    
    или как-то добавить плавность во вторую функцию.
    в javascript знания пока слабые, поэтому прошу сильно не пинать.

    спасибо.
     
  2. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    а так не вариант ?

    PHP:
    function fade(xxx) {
      $(
    xxx).fadeTo(5001).fadeOut(500);
    }


    onclick="javascript:fade("переменная");"
    или я недопонял ..?
     
    fafee и sosiska нравится это.
  3. fafee

    fafee Постоялец

    Регистр.:
    4 окт 2008
    Сообщения:
    92
    Симпатии:
    0
    еще как вариант!
    спасибо, то что надо)
     
  4. Infocean

    Infocean aka xakep

    Регистр.:
    23 окт 2007
    Сообщения:
    66
    Симпатии:
    17
    Вторую функцию, я бы сделал так(без эффекта:(

    PHP:
    function showhide(id1){
        if ($(
    id1).css("display") == "none") $(id1).show();
        else $(
    id1).hide();
    }
    или вот так(с эффектом: плавность:(

    PHP:
    function showhide(id1){
        if ($(
    id1).css("display") == "none") $(id1).show(2000);
        else $(
    id1).hide(2000);
    }
    В скобках, где написано "2000", можешь менять на своё число, если хочешь увеличить или уменьшить скорость появления элемента на странице.

    Вызов:
    PHP:
    onclick="showhide('#name_layer')"
    Т.к.:
    1) Вы же используете JQuery, в нём уже есть большая часть того что вам нужно.
    2) Так получается меньше кода :)