jquery - 如何在执行后刷新 jQuery 选择器值?

标签 jquery jquery-selectors

$(文档).ready(function() {

var $clickable_pieces = $('.chess_piece').parent();
$($clickable_pieces).addClass('selectee'); // add selectee class

var $selectee = $('.chess_square.selectee');

// wait for click 
$($selectee).bind('click',function(){
    $('.chess_square.selected').removeClass('selected');
    $(this).addClass('selected');
    { ........... }

});

我最初将 'selectee' 类注入(inject)到所有具有 'chess_piece' 类的 div,然后选择具有该类的 DIV $('.chess_square.selectee ')

<div id="clickable">
    <div id="div1" class="chess_square">
    </div>

    <div id="div2" class="chess_square selectee">
          <div id="sub1" class="chess_piece queen"></div>
    </div>

    <div id="div3" class="chess_square">
    </div>

</div>

有两种类型的 DIV 元素,其类名为“chess_square selectee”和“chess_square”,后者并不意味着可单击。我将“rps_square selectee”的子 DIV 从 DIV2 移动到 DIV1,并添加和删除类,使其与此完全相同。含义是 Queen Piece 从 Div2 移至 Div1。

<div id="div1" class="chess_square selectee">
  <div id="sub1" class="chess_piece queen"></div>
</div>

<div id="div2" class="chess_square">
</div>

<div id="div3" class="chess_square">
</div>

但是,问题是 jQuery 不会更新 var $selectee = $('.rps_square.selectee');。即使我更改了类名称,DIV1 仍不可单击,而 DIV2 仍然可单击。顺便说一句,我使用了 jQuery UI 可选择,但也不刷新。

最佳答案

使用.live()代替.bind()像这样:

$('.chess_square.selectee').live('click',function(){
    $('.chess_square.selected').removeClass('selected');
    $(this).addClass('selected');
    { ........... }    
});

这并不是说 jQuery 没有更新集合,尽管事实并非如此。您已经将事件处理程序绑定(bind)到匹配的 DOM 元素。

使用.live()在 DOM 根监听 click 并在它与选择器匹配时执行...如果类发生更改,它将不再与选择器匹配,并且处理程序将不会执行,这就是你在追赶。反之亦然,如果有任何新内容与选择器匹配,当它的点击冒泡时,处理程序将为其执行。

关于jquery - 如何在执行后刷新 jQuery 选择器值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766842/

相关文章:

javascript - 访问 jquery 函数范围之外的 javascript 变量

javascript - 使用正则表达式从 url 中删除查询字符串参数

根据数据属性查找元素的 jQuery 选择器不起作用

jquery - 使用 jQuery 动态突出显示我的 Navbar 链接的最佳替代方法?

jquery - 如何选择由php脚本生成的动态id

javascript - 无法在聊天应用程序中使用 Ajax 调用从 Controller 返回 html

jquery - 如何在内联编辑jqgrid中的onSelectRow中将焦点设置在特定单元格上

javascript - 谷歌地图/jquery 反向地理编码

javascript - 循环遍历仅以特定模式开头的 JSON 对象

javascript - 是否可以选择所有与选择器不匹配的元素?