将jquery对象分配给变量不能按预期工作

时间:2016-05-23 15:16:11

标签: javascript jquery

有人可以解释为什么其中一个版本的代码有效而另一个失败了吗?

这不起作用:

var classForSelectedElement = "hightlight";
var prevSelect = $(".form-element");
var $selectedElement = $("div").on("click", ".form-element",function(e){
    prevSelect.removeClass(classForSelectedElement);
    $(this).addClass(classForSelectedElement);
});

虽然这有效:

var classForSelectedElement = "hightlight";
var $selectedElement = $("div").on("click", ".form-element",function(e){
    $(".form-element").removeClass(classForSelectedElement);
    $(this).addClass(classForSelectedElement);
});

为什么?

1 个答案:

答案 0 :(得分:2)

假设.form-element元素在加载后动态地附加到DOM(由于您使用了委托事件处理程序),那么第一个示例在您尝试检索{{1}时不起作用在页面加载之前它们存在。