在jquery ui sortable事件中的$ .each函数中不能使用$(this)

时间:2012-12-03 17:16:37

标签: jquery jquery-ui jquery-ui-sortable each

我无法从每个内部获取$(this)。我试图在移动一行后重置表的css。 “#newTaskBody”是tbody的id。 “.newProjectTask”是s的类。

// make the table sortable;
$("#newTaskBody").sortable({
    stop: function() {
        var counter = 0;
        $.each(".newProjectTask", function() {
            console.log(this.id);
            if(counter == 0)
            {
                $(this).removeClass("even odd");
                $(this).addClass("even");
                counter = 1;
            }
            else
            {
                $(this).removeClass("even odd");
                $(this).addClass("odd");
                counter = 0;
            }
        });
    }
});

console.log(this.id);返回undefined 15次,虽然我正在测试4行。我试过'停','更新'和'改变'事件。

1 个答案:

答案 0 :(得分:4)

您传递的是string,即".newProjectTask",而不是每个函数都有类newProjectTask的元素。每次迭代都会给出you character of the string,要查看发生了什么,请查看此demo

更改

$.each(".newProjectTask", function() {

$.each($(".newProjectTask"), function() {

这是每个

获取元素的方法

<强> Live Demo

<div id="div1" class="newProjectTask" > div1 </div>
<div id="div1"  class="newProjectTask" > div2 </div>
<div id="div1"  class="newProjectTask" > div3 </div>


​$.each($(".newProjectTask"), function() {
    alert(this.id)
})

更好地使用每个的其他版本,即$('.newProjectTask').each(,而不是您使用的版本。

$(".newProjectTask").each( function() {
    alert(this.id)
})