2

我是否正确地说以下内容会给我一个元素的 id?

$('#detailData').on('click', '.select-topic', function (event) {
    var id = $(this).attr('id');

如果这是正确的,那么我是否可以使用下面的代码对该元素执行延迟点击。我不确定如何编写 jQuery 选择器?如何同时输入 id 和 # 标记?

setTimeout(function () {
    jQuery('???').trigger('click');
}, 1000);
4

2 回答 2

3
$('#detailData').on('click', '.select-topic', function (event) {
    var id = $(this).attr('id');

现在你得到了 id,然后用 '#' 选择那个元素

setTimeout(function () {
    $('#' + id).trigger('click');
}, 1000);
于 2012-08-12T15:56:07.700 回答
1

存储 id 将起作用,但为什么不首先缓存 jQuery 选择器。
在元素可能没有指定 id 的情况下,这也将起作用。

缓存值的另一个好处是,当您想使用它时,您不必不断地重新创建 jQuery 对象,这也节省了性能。

var $selectTopic;

$('#detailData').on('click', '.select-topic', function (event) {
    $selectTopic = $(this);
})

后者直接使用jQuery对象。

setTimeout(function () {
    $selectTopic.trigger('click');
}, 1000);

如果由于某种原因您再次需要选择器字符串来查询嵌套元素,您可以使用:

$($selectTopic.selector + ' #anotherElementInside');
于 2012-08-12T16:03:41.927 回答