JQuery Rel Переключить? - PullRequest
       18

JQuery Rel Переключить?

0 голосов
/ 06 января 2012

Можно ли переключать (переключать) атрибут rel таким же образом, как классы можно переключать в jquery?http://api.jquery.com/toggleClass/

Я пытаюсь создать кнопку, которая при нажатии изменит (переключит) атрибут rel другой кнопки.Надеюсь, что это имеет смысл.


Я довольно новичок в этом и не уверен, правильно ли я реализовал ваш код, но он не работает.Возможно, я просто думаю об этой вещи неправильно.

Моя идея - использовать плагин animatedcollapse.js (http://www.dynamicdrive.com/dynamici...edcollapse.htm) для анимации аккордеона. Аккордеон работает в соответствии с атрибутом "rel", либо "rel"= свернуть [выбранный div] "или" rel = раскрыть [выбранный div] ". Развернуть или свернуть аккордеон. Проблема с тем, как он настроен, состоит в том, что, когда один div разрушается, другой одновременно расширяется в фоновом режиме.

http://dl.dropbox.com/u/14080718/Final/UITabs10.html

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

Я думаю, что переключение rel между "rel = collapse [selected div]" и "rel = expand [selected div]" может решить эту проблему, ноЯ не уверен. Если у вас есть какие-либо другие идеи, я бы хотел их услышать.

Ответы [ 3 ]

1 голос
/ 06 января 2012

Я только что написал плагин jQuery.

Использование: $("selector").toggleAttr("rel", "option1", "option2");

(function($) {
    $.fn.toggleAttr = function(attribute, option1, option2) {
        return this.each(function() {
            var $this = $(this);
            if ($this.attr(attribute) != option1) {
                $this.attr(attribute, option1);
            } else {
                $this.attr(attribute, option2);
            }
        });
    }
})(jQuery);
0 голосов
/ 06 января 2012

Вы, вероятно, хотите этого,

$(document).ready(function(){
  $(".buttonToggle").click(function(){
    var relAttribute = $(".buttonYouWanttotogglerelattr").attr("rel"); 
  //gets current rel
    if(relAttribute == "value1"){
     $(".buttonYouWanttotoggleRelattr").attr("rel","value2"); 
     //if its value1 change it to value2
     }
    else
     {
     $(".buttonYouWanttotoggleRelattr").attr("rel","value2");
     }
  });
});
0 голосов
/ 06 января 2012
//global flag to check condition
var flag = true;

$('#yourelement').click(function(){
           if(flag == true){
                flag = false;
                $('#yourotherelement').attr('rel', newValue);         
           }else{
                flag = true;
                $('#yourotherelement').attr('rel', oldValue);
          }
});
...