JQuery .focus не фокусирует вновь созданный элемент

Допустим, у меня есть эта разметка:

<div id="content">
  <div id="firstP"><p>First paragraph</p></div>
  <div id="secondP"><p>Second paragraph</p></div>
  <div id="thirdP"><p>Third paragraph</p></div>
  <div id="fourthP"><p>Fourth paragraph</p></div>
</div>

Я хочу добавить новый <div> с jQuery и сосредоточиться на этом новом элементе. .focus ничего не делает.

function addParagraph() {
  var html = "<div id=\"newP\"><p>New paragraph</p></div>";

  $("#content").append(html);
  $("#newP").focus();    
}

Есть идеи почему?

13
задан Sebastian Simon 5 August 2019 в 09:14
поделиться

6 ответов

Нет никакой проблемы с Вашим кодом, это просто, что тег абзаца или тег Div не могут получить фокус . Фокус может только быть дан вещам, можно взаимодействовать с, такие как ссылки, ввести элементы, текстовые области, и т.д.

Для прокрутки окна к этому недавно добавленному элементу, можно использовать плагин такой в качестве ScrollTo.

На ноте стороны, Ваш код мог быть упрощен немного:

var html = "<div id=\"newP\"><p>New paragraph</p></div>";
$("#content").append(html);
$("#newP p").focus();

var html = "<div id=\"newP\"><p>New paragraph</p></div>";
$(html)
    .appendTo('#content')
    .focus()   // or scrollTo(), now...
;
17
ответ дан nickf 5 August 2019 в 09:14
поделиться

Я думаю, что Вы ищете, использует плагин 'ScrollTo' в jQuery. Вы можете проверка это здесь .

можно определить, что прокрутить...

$('div.pane').scrollTo(...);//all divs w/class pane

Или просто прокручивают окно:

$.scrollTo(...);//the plugin will take care of this

существует много различных способов определить целевое положение. Это:

  • сырые данные А номер
  • строка ('44', '100 пкс', '+ =30px', и т.д.)
  • А элемент DOM (логически, ребенок элемента с возможностью прокрутки)
  • селектор А, который будет относительно элемента с возможностью прокрутки
  • хеш А {top:x, left:y}, X и Y, может быть любым видом числа/строки как вышеупомянутый.

Премия: Во вскапывании этой информации, я также нашел LocalScroll, и SerialScroll (анимирует прокрутку от одного объекта до следующего).

2
ответ дан Dan Esparza 5 August 2019 в 09:14
поделиться
  • 1
    Ну, там случаи, где Вы хотите к " crash" ядро. That' s, почему panic существует (хорошо, это распечатает сообщение, но в большинстве целей it' s катастрофический отказ). It' s просто, что остановка/катастрофический отказ системы является чем-то, которое Вы не должны делать слегка... – sleske 15 June 2011 в 15:01

Необходимо использовать привязку к странице HTML не, фокусируются. Пример:

http://localhost/mypage.html#fourthP
5
ответ дан Todd Smith 5 August 2019 в 09:14
поделиться

Только элементы формы и такой могут достигнуть фокуса. Если Вы хотите, чтобы браузер прокрутил вниз к тому конкретному абзацу, нет никакого способа "по умолчанию" сделать так с jQuery, но существует плагин для него в jQuery. ScrollTo и блог, объясняющий, как сделать это вручную в Анимированная прокрутка с jQuery

1
ответ дан Guðmundur Bjarni 5 August 2019 в 09:14
поделиться

Вместо

$("#newP").focus();  

это должно использоваться:

window.location.href=window.location.href + "#newP";     
1
ответ дан Sergio del Amo 5 August 2019 в 09:14
поделиться
  • 1
    Будьте склонны соглашаться с большинством комментариев. Переключение языков, тем не менее, не является опцией. Ни один из нас не знаю, что obj-Pascal, и при этом я не заботимся также. У нас есть некоторый низкоуровневый материал драйвера we' ve, сделанный, что я боюсь тиражирования в Дельфи, был бы кошмаром. И Дельфи принадлежит той же компании, таким образом, не уверенной, что это покупает меня. – Eric 21 November 2010 в 15:31

I think the main answer is incorrect. DIV and P tags can receive focus providing you specify a tabindex property for them. i.e.

<div class="someclass" tabindex="100">

Once the tabindex is specified you can either tab to these elements or shift focus with .focus() .

Using a scrollTo plugin seems like a bit of an overkill here.

50
ответ дан 1 December 2019 в 17:12
поделиться
Другие вопросы по тегам:

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