var mediaIdForFocus = '<?php echo $this->mediaIdForFocus; ?>';
if(mediaIdForFocus)
$('#flagimg'+mediaIdForFocus).get(0).scrollIntoView().addClass("selectedMedia"); // highlight class
$('.logoTxt').focus();
我正在尝试调整div $('#flagimg'+mediaIdForFocus)
的滚动,然后将焦点放在元素上$('.logoTxt')
滚动视图调整为元素$('#flagimg'+mediaIdForFocus)
但$('.logoTxt').focus();
没有提供焦点。它只发生在第一次。如果我刷新页面,它会按预期工作。
请帮助我。
要将元素平滑地滚动到视图中并将焦点设置为该元素,您可以执行以下操作:
elm.scrollIntoView({behavior: 'smooth', block: 'center'});
elm.focus({preventScroll: true});
$(document).scrollTop(0);
做到了
代码给出如下
// for setting the focus to selected media if it is chosen from media page.
var mediaIdForFocus = '<?php echo $this->mediaIdForFocus; ?>';
if(mediaIdForFocus)
$('#flagimg'+mediaIdForFocus).get(0).scrollIntoView(); // highlight class
$(document).scrollTop(0);
问题可能是代码行$('#flagimg'+mediaIdForFocus).get(0).scrollIntoView().addClass("selectedMedia");
.get(0)
返回普通元素,因此 jQuery 包装器消失了。 .addClass()
是一个jQuery函数,那么在纯元素上执行jQuery函数是不可能的。
因此,首先添加类,然后在视图中滚动元素: $('#flagimg'+mediaIdForFocus).addClass("selectedMedia").get(0).scrollIntoView();