gpt4 book ai didi

jquery - 为什么 .attr ('checked' ,'checked' ) 不会设置?

转载 作者:行者123 更新时间:2023-12-01 00:01:50 29 4
gpt4 key购买 nike

我有以下代码片段(我使用的是 jQuery 1.4.2):

$.post('/Ads/GetAdStatsRow/', { 'ad_id': id }, function(result) {
$('#edit_ads_form tbody').prepend(result);
$(result).find('td.select-ad input').attr('checked','checked').click();
});

假设帖子工作正常并返回正确的预构建 <tr>与一些<td> s。奇怪的是:$(result).find()行找到正确的输入(这是一个复选框,因为它是单元格中的唯一输入)并运行链接的 click()功能正常,但它拒绝将该框设置为选中状态,这是我需要发生的。

这也是一个疯狂的转折......当我变得非常具体并更改 $(result).find() 时到此行(复选框的 ID):

$('#ad_' + id).click();

它选中该框,但不运行 click()功能!如果我将其设置为

$('#ad_' + id).attr('checked','checked').click();

它运行点击函数,就像选中该框一样,但该框保持未选中状态,如果我这样做

$('#ad_' + id).click().attr('checked','checked');

它什么都不做。

这到底是怎么回事?我的头发快用完了......

谢谢!

编辑

这是我在 $(function()) 中设置点击事件的方法调用:

$('td.select-ad input').live('click',AdPreview.selectAd);

它与所有其他复选框一样工作,并且如果手动单击,新添加的复选框确实可以工作。

编辑2

经过一番挖掘,我发现:

$('#ad_' + id).click();

实际上,除了选中该框之外,还调用我的点击函数。但是,当调用 click 函数时(我已经检查过以确保 input 是正确的复选框,而且确实如此),

var input = $(this);
console.log(input.is(':checked'));

即使该框实际上已选中,日志也会返回 false! GAH WTF

最佳答案

我认为这是因为你正在对一些不在 DOM 中的 html 进行查找。

$.post('/Ads/GetAdStatsRow/', { 'ad_id': id }, function(result) {
// the "result" html is copied into the DOM
$('#edit_ads_form tbody').prepend(result);

// now you're doing a find on some HTML which isn't in the DOM.
$(result).find('td.select-ad input').attr('checked','checked').click();
});

这在一定程度上解释了为什么做特定的事情是有效的。以下是个别问题:

$('#ad_' + id).click();

这将单击该框(使其被选中),但没有附加任何事件。

$('#ad_' + id).attr('checked','checked').click();

这会将属性设置为选中,然后单击它,立即取消选中它。

关于jquery - 为什么 .attr ('checked' ,'checked' ) 不会设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596854/

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