Событие клика JS в зависимости от ширины div

0

Я пытаюсь изменить размер двух div с событием click в сочетании с запросом if. Если значение div #slide_3_1 равно 100% а #arrow_right_3, то div #slide_3_1 должен быть шириной 0px а div #slide_3_2 должен быть на 100% шириной.

Когда я нажимаю #arrow_right_3 ничего не происходит. Есть идеи? Благодарю!

var $div_width = $('#slide_3_1').attr('width');

$(document).ready(function(){
    $("#arrow_right_3").click(function(){
        if ($div_width > 0) {
            $("#slide_3_1").css('width', '0px');
            $("#slide_3_2").css('width', '100%');
        }
    });
});

HTML:

<div id="section_3" class="section">
    <div class="arrow_left" id="arrow_left_3">Arrow left</div>
    <div class="arrow_right" id="arrow_right_3">Arrow right</div>
    <div id="slide_3_1" class="slide"></div>
    <div id="slide_3_2" class="slide"></div>
    <div id="slide_3_3" class="slide"></div>
</div>
  • 0
    Я предполагаю, что d$iv_width является опечаткой? (первая строка). Если нет, то это ваша проблема.
  • 0
    Можете ли вы вставить точку останова в свой обработчик click и посмотреть, вызывается ли вообще обработчик события?
Показать ещё 4 комментария
Теги:
if-statement
click

3 ответа

2
Лучший ответ

У вас есть опечатка в вашем коде, в первой строке это должно быть "$ div_width".

Кроме того, вы должны получить ширину, используя '$ div.width()'. Это всегда будет возвращать ширину, даже если элемент не имеет атрибута ширины.

1

Объединяя все в комментариях, здесь работает скрипка:

http://jsfiddle.net/N994Z/1/

$(function() {
    var $div_width = $('#slide_3_1').width();
    $("#arrow_right_3").click(function () {
        if ($div_width > 0) {
            $("#slide_3_1").css('width', '0px');
            $("#slide_3_2").css('width', '100%');
        }
    });
}
0

Из вашего вопроса, похоже, у вас есть два div с id "slide_3_1"

"Если на div # slide_3_1 на 100% и нажата стрелка" стрелка_право_3 ", чем другой div # slide_3_1 должен быть шириной 0px",

  • 0
    Я извиняюсь за мой английский, конечно есть только один div # slide_3_1;)
  • 0
    в этом случае я бы пошел с ответом Джеродева

Ещё вопросы

Сообщество Overcoder
Наверх
Меню