"$.getScript @href" не получает href от кнопки, только от тега

Я слушаю button и немного a теги с этим кодом:

$("#pagination_partial a, #order_sorting_partial a, #order_sorting_partial .organize-btn").bind("click", function() {
  $.getScript(this.href);
  history.pushState(null, "", this.href);
  return false;
});

Код должен получить href от элемента clicked, но на данный момент он получает только href от a теги. Когда я нажимаю organize-btn код понимает, что кнопка нажата, но ничего не назначает @href,

Что я делаю неправильно? Вот файл представления (HAML):

.row
    .span
        .btn-group
            %button.btn{:href => "/orders?view=#{@organize_mode}", :class => "organize-btn"}= t(".#{@organize_mode}")
            %button.btn.dropdown-toggle{"data-toggle" => "dropdown"}
                %span.caret
            %ul.dropdown-menu
                %li
                    %a{:href => "/orders?view=by_last_dispatch"}= t(".by_last_dispatch")
                %li
                    %a{:href => "/orders?view=by_first_dispatch"}= t(".by_first_dispatch")

1 ответ

Решение

Форма объекта js тега привязки имеет свойство href, но не следует путать это с тем же атрибутом, что и с атрибутом href тега DOM. В вашей разметке вы добавляете атрибут href к своим кнопкам, но они не добавляются автоматически в объект js, как вы ожидаете. Предполагая, что вы хотите продолжать использовать атрибут с именем href, который я считаю еще одним не относящимся к теме вопросом, вам потребуется доступ к этому атрибуту из DOM, который он сам. С помощью jQuery вы захотите заменить свой this.href с $(this).attr("href")

Другие вопросы по тегам