gpt4 book ai didi

javascript - jQuery 运算符是 (':visible' )不起作用

转载 作者:行者123 更新时间:2023-12-03 10:26:09 25 4
gpt4 key购买 nike

我是 jQuery 新手,我正在查看 modal.js 代码并发现以下代码:

$target.one('show.bs.modal', function (showEvent) {
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
$target.one('hidden.bs.modal', function () {
$this.is(':visible') && $this.trigger('focus')
})
})

我试图理解上面的代码,所以我 made a Fiddle .

现在,如果您在代码中看到 if 条件:

 if ($this.is(':visible')) {
$('input').trigger('focus');
console.log($this + ' ' + 'is visible');

} else {
console.log($this + ' ' + 'invisible');
}

现在即使我有以下显示规则,即

input {
display:none;
}

if 条件仍然通过;这是我的第一个困难。为什么 if 条件会通过?

我的第二个困难是 if 条件内的行,即

$this.trigger('focus');

现在,即使 if 条件通过,输入也不会获得焦点。为什么?

最佳答案

我对你的代码做了一些小改动,现在这一切似乎对我有用:

$(document).ready(function () {
$target = $('input');
$target.trigger('focus');

$target.one('show.bs.modal', function (showEvent) {
$this = $(this);

console.log($this);

if ($this.is(':visible')) {
$this.focus();
} else {
console.log($this + ' ' + 'invisible');
}

$target.one('hidden.bs.modal', function () {
$this.is(':visible') && $this.trigger('focus')
});
});

$target.trigger('show.bs.modal');
});

http://jsfiddle.net/v36zoy1g/2/

要聚焦某个元素,您不需要花哨的代码。 .focus() 函数可以为您完成这项工作!事实上,我想仅此而已,说实话我不记得我还改变过什么。 :p

关于javascript - jQuery 运算符是 (':visible' )不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29390720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com