使用live / on时,jQuery对象方法失败

时间:2011-12-22 15:36:51

标签: jquery

我在#live()回调中on()选择了问题。

$(document).on('click',".dfield_span_after", function(event) {
    var in_id = $(this).attr('data-in_id');
    var field = $('#'+in_id) // this line
    field.show();
}

field.show()根本不起作用,但选择如下:

var field = $('[id='+in_id+']')

工作正常。

这是一个jQuery问题(使用了几个版本)还是我做错了什么?

更新: 如果它可能有所帮助,这种情况在这种情况下不起作用。我有一个页面,其中包含一些像代码中所示的交互元素。这个代码在我点击链接之前工作正常,它通过AJAX生成一些元素并在弹出窗口中显示。弹出窗口中的元素工作不好,页面的其余部分仍然很好。

由于

1 个答案:

答案 0 :(得分:2)

如果[id=theid]有效且#theid没有,则通常意味着您的网页上有重复的ID。 ID必须是唯一的。

评论

编辑

所以,如果你这样做:

$(document).on('click',".dfield_span_after", function(event) {
    var in_id = $(this).attr('data-in_id');
    var field = $('#'+in_id) // this line
    field.show();
    alert(field.length);
    alert($("[id="+in_id+"]").length);
}

您收到1的两个提醒?