jQuery нажимает на прокрутку сил элемента привязки к вершине?

Отражение не имеет места в производственном коде

Отражение разрывает статический анализ, включая инструменты рефакторинга и проверку статического типа. Отражение также нарушает обычные предположения разработчиков о коде. Например: добавление метода в класс (который не затеняет какой-либо другой метод в классе) никогда не должен иметь никакого эффекта, но когда используется отражение, другой фрагмент кода может «обнаружить» новый метод и принять решение назови это. Фактически определить, существует ли такой код, трудно.

Я думаю, что нормально использовать рефлексию и тесты, а также в генераторах кода.

Да, это означает, что я стараюсь избегать рамок, которые используют рефлексию. (очень плохо, что Java не имеет надлежащей поддержки метапрограммирования во время компиляции)

18
задан Community 23 May 2017 в 11:48
поделиться

5 ответов

Это должно сработать, не могли бы вы пояснить, что вы имеете в виду под словом «до»? Вы делаете это?

jQuery("#id_of_anchor").click(function(event) {
    event.preventDefault();
    Function_that_does_ajax();
});

Потому что этот должен работать в том смысле, что если он не работает, ВЫ делаете что-то не так, и нам нужно увидеть больше кода. Однако для полноты картины вы также можете попробовать следующее:

jQuery("#id_of_anchor").click(function() {
    Function_that_does_ajax();
    return false;
});

РЕДАКТИРОВАТЬ

Вот пример работы .

Две ссылки используют этот код:

$('#test').click(function(event) {
    event.preventDefault();
    $(this).html('and I didnt scroll to the top!');
});

$('#test2').click(function(event) {
    $(this).html('and I didnt scroll to the top!');
    return false;
});

И как вы можете видеть они работают нормально.

18
ответ дан 30 November 2019 в 07:39
поделиться

Этот вопрос больше относится к упражнению по отладке, так как в нем указано, что вы используете правильные функции из объекта события jQuery .

В обработчике событий jQuery вы может выполнять одну или обе из двух основных вещей:

1. Prevent the default behavior of the element (The A HREF="#", in your case):

jQuery("#id_of_anchor").click(function(evt) { 
  // ...
  evt.preventDefault(); // assuming your handler has "evt" as the first parameter
  return false;
}

2. Stop the event from propagating to event handlers on the surrounding HTML elements:

jQuery("#id_of_anchor").click(function(evt) { 
  // ...
  evt.stopPropagation(); // assuming your handler has "evt" as the first parameter
}

Since you're not getting the expected behavior, you should take out the ajax call temporarily, replace it with some innocuous code like setting a form value, or -shudder- alert("OK") and test if you still scroll to the top.

3
ответ дан 30 November 2019 в 07:39
поделиться
$("#id_of_anchor").click(function(event) { 
  // ...
  return false;
}
2
ответ дан 30 November 2019 в 07:39
поделиться

вы можете использовать javascript: void (0); в собственности href.

5
ответ дан 30 November 2019 в 07:39
поделиться

У меня была такая же проблема.

Я думаю, это происходит, когда вы привязываете событие перед добавлением элемента в DOM.

0
ответ дан 30 November 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: