jquery .attr?!

Тема в разделе "JavaScript", создана пользователем v@dim, 15 окт 2013.

  1. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Здравствуйте друзья!
    Прошу помощи. Сложно формулировать вопрос не зная java но попробую...
    Имеем вот такую строку понимаю что она добавляет к диву этот "Псевдо клас" disabled="disabled"
    Код:
    {a(c).attr("disabled","disabled")}else{a(c).removeAttr("disabled")}
    на выходе имеем такой "зависимый" блок
    Код:
    <div id="X" class="Y" disabled="disabled">
    Что нужно сделать чтобы с этим "псевдо классом" испльзовать свойство display: none; дабы скрыть его?

    Заранее благодарен!
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    есть свойство .css()
    делаем так:
    Код:
    $('.class').css('display','none');
     
  3. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Не совсем то. в общем задумка в том чтобы зависимая опция не отображалась пока не выбрана родительская опция. этот дисаблед убирается при выборе родителя.(((
     
  4. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    если я правильно понял суть, то тебе нужно применить просто $('.class').hide() или show() в зависимости от того что выбрано.

    т.е. ты выбрал опцию и после выбора делаешь show().
     
    v@dim нравится это.
  5. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Не совсем
    Еще раз.
    Модуль dependent options (Зависимые опции). Я назначил например опцию для товара- ширина и выбрал для нее родителя- высота. Получается если не выбран родитель (высота), то select (ширина пустой) так вот когда он пустой хочу его скрыть.


    Что только не пробовал. не выходит.
     
  6. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    сделайте здесь http://jsfiddle.net/ пример, дабы мы понимали друг друга правильно.

    просто возьмите кусок хтмл нужного вам блока + кусок js который отвечает за него, и, если нужно добавьте css.

    так будет лучше.
     
    v@dim нравится это.
  7. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Там не получается запустить

    вот два селекта первый родитель, второй зависимый. Если выбрать первый- убирается disabled="disabled" у дива и селект становиться активным... Может средствами css можно скрыть?

    Код:
    <div class="option" id="option-1">
        <select name="option[1]">
            <option value="">Выбрать</option>
            <option value="">1</option>
        </select>
    </div>
    
    <div class="option" id="option-2" disabled="disabled">
        <select name="option[2]">
            <option value="">Выбрать</option>
            <option value="">1</option>
        </select>
    </div>
    Файл модуля .js
    Код:
    (function(a){a.fn.chained=function(b,c){return this.each(function(){var c=this;var d=a(c).clone();a(b).each(function(){a(this).bind("change",function(){a(c).html(d.html());var e="";a(b).each(function(){e+="\\"+a(":selected",this).val()});e=e.substr(1);var f=a(b).first();var g=a(":selected",f).val();a("option",c).each(function(){if(!a(this).hasClass(e)&&!a(this).hasClass(g)&&a(this).val()!==""){a(this).remove()}});if(1==a("option",c).size()&&a(c).val()===""){a(c).attr("disabled","disabled")}else{a(c).removeAttr("disabled")}a(c).trigger("change");if(typeof obUpdate=="function"){a(':input[name^="option"]',c).change(function(){obUpdate(a(this),useSwatch)})}if(typeof updatePx=="function"){a(':input[name^="option"]',c).change(function(){updatePx()})}});if(!a("option:selected",this).length){a("option",this).first().attr("selected","selected")}a(this).trigger("change")})})};a.fn.chainedTo=a.fn.chained})(jQuery)
    Из vqmod Скрипты:
    product_form.tpl
    Код:
        <script type="text/javascript"><!--
                  $('#child-<?php echo $option_value_row; ?>').chained('#parent-<?php echo $option_row; ?>');
                  //--></script>
     
  8. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.580
    Симпатии:
    1.482
    v@dim нравится это.
  9. v@dim

    v@dim

    Регистрация:
    31 окт 2012
    Сообщения:
    132
    Симпатии:
    21
    Работает! Неожидал!
    Хоть и нельзя... Но огромнейший респект!:bounce: