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();
未提供焦点。它只在第一次发生。如果我刷新页面,它会按预期工作。
请帮帮我。
答案 0 :(得分:0)
$(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);
答案 1 :(得分:0)
问题可能是代码行$('#flagimg'+mediaIdForFocus).get(0).scrollIntoView().addClass("selectedMedia");
.get(0)
返回plain元素,因此jQuery包装器消失了。 .addClass()
是一个jQuery函数,无法在普通元素上执行jQuery函数。
首先添加类,然后在视图中滚动元素:
$('#flagimg'+mediaIdForFocus).addClass("selectedMedia").get(0).scrollIntoView();
答案 2 :(得分:0)
要将元素平滑滚动到视图中并设置焦点,您可以执行以下操作
elm.scrollIntoView({behavior: 'smooth', block: 'center'});
elm.focus({preventScroll: true});