Как я могу воспроизвести метод finish () JQuery в пользовательском интерфейсе JQuery? [Дубликат]

Фундаментальное различие между тремя перечисленными вами стратегиями заключается в том, находится ли тестовый код в том же пакете, что и тестируемый код. Решение использовать package myfunc или package myfunc_test в тестовом файле зависит от того, хотите ли вы выполнить white-box или тестирование черного ящика .

Нет ничего плохого в использовании обоих методов в проекте. Например, вы могли бы иметь myfunc_whitebox_test.go и myfunx_blackbox_test.go.

Сравнение пакетов тестового кода

  • Тестирование черного ящика: используйте package myfunc_test, который гарантирует, что вы используете только экспортированные идентификаторы .
  • Тестирование белого ящика: используйте package myfunc, чтобы у вас был доступ к неэкспортированным идентификаторам.

Сравнение стратегий, перечисленных в вопросе

  • Стратегия 1: Файл myfunc_test.go использует package myfunc. В этом случае тестовый код в myfunc_test.go будет в том же пакете, что и код, протестированный в myfunc.go, который является myfunc в этом примере.
  • Стратегия 2: файл myfunc_test.go использует package myfunc_test - в этом случае тестовый код в myfunc_test.go "будет скомпилирован как отдельный пакет, а затем связан и запущен с основным тестовым двоичным кодом". [Источник: строки 58-59 в исходном коде test.go ]
  • Стратегия 3: файл myfunc_test.go использует package myfunc_test, но импортирует myfunc с использованием точечной нотации - Это вариант стратегии 2, но для импорта myfunc используется точечная нотация.

11
задан Mr Shark 12 September 2008 в 21:40
поделиться

3 ответа

Из документов jQuery:

http://docs.jquery.com/Effects/stop

Остановить текущая анимация совпадающих элементов. ...

Когда при вызове .stop() вызывается элемент, текущая анимация (если есть) немедленно останавливается. Если, например, элемент скрывается с .slideUp(), когда вызывается .stop(), элемент теперь будет отображаться, но будет составлять часть его предыдущей высоты. Функции обратного вызова не вызываются.

Если для одного и того же элемента вызывается несколько методов анимации, более поздние анимации помещаются в очередь эффектов для элемента. Эти анимации не начнутся до тех пор, пока не завершится первая. Когда вызывается .stop(), следующая анимация в очереди начинается немедленно. Если параметру clearQueue присвоено значение true, остальные анимации в очереди удаляются и никогда не запускаются.

Если аргументу jumpToEnd предоставляется значение true, текущая анимация останавливается, но элемент сразу получает целевые значения для каждого свойства CSS. В нашем примере выше .slideUp() элемент будет немедленно скрыт. Затем функция обратного вызова немедленно вызывается, если она предоставлена ​​...

10
ответ дан gnat 28 August 2018 в 14:32
поделиться
  • 1
    Спасибо, мой google-foo, кажется, сегодня вмятина :-) – Mr Shark 12 September 2008 в 21:53
  • 2
    Бывает. StackOverflow хорош для поиска аутсорсинга :) – Ryan Lanciaux 12 September 2008 в 21:54
  • 3
    FYI - Я тоже искал этот ответ (пытаясь остановить эффект пульсации), но у меня был код .stop() в моем коде. После рассмотрения документов мне понадобилось .stop(true, true) – Dutchie432 29 August 2011 в 18:55
  • 4
    @ Dutchie432: вы точно описали, что я искал ... Я также использую эффект Pulsate. У меня был .stop(), но он не сработал. Теперь он работает так, как ожидалось. Что может сделать комментарий? Это также ответ ...: D Поисковый аутсорсинг был веселым: o) – Leniel Maccaferri 23 April 2012 в 04:39

Я перечислил это как комментарий для принятого ответа, но я подумал, что было бы неплохо опубликовать его как автономный ответ, поскольку он помогает некоторым людям, имеющим проблемы с .stop()


FYI. Я тоже искал этот ответ (пытаясь остановить эффект пульсации), но в моем коде у меня был .stop().

После просмотра документов мне понадобилось .stop(true, true)

15
ответ дан Dutchie432 28 August 2018 в 14:32
поделиться
  • 1
    Я люблю тебя, чувак ! :) Сохранял меня много времени. – Dimitar Dimitrov 15 April 2014 в 07:42
  • 2
    @DimitarDimitrov Вернувшись на ya. Счастливое кодирование. – Dutchie432 18 April 2014 в 16:40
  • 3
    Это именно то, что я хотел сделать, и я думаю, что большинство людей хотят честно решать, спасибо. – Jessycormier 19 January 2017 в 13:18

.stop (true, true) заморозит эффект, поэтому, если он невидим в то время, он остается невидимым. Это может быть проблемой, если вы используете эффект пульсации.

$('#identifier').effect("pulsate", {times:5}, 1000);

Чтобы обойти это, я добавил

$('#identifier').stop(true, true).effect("pulsate", { times: 1 }, 1);
2
ответ дан fireydude 28 August 2018 в 14:32
поделиться
Другие вопросы по тегам:

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