我无法从每个内部获取 $(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);尽管我正在使用 4 行进行测试,但返回未定义 15 次。我尝试过“停止”、“更新”和“更改”事件。
最佳答案
您将 string
即 ".newProjectTask"
传递给每个函数,而不是具有类 newProjectTask 的元素。每次迭代都会给出字符串的字符
,要查看发生了什么,请检查此 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)
})
关于jquery - 无法在 jquery ui 可排序事件中的 $.each 函数中使用 $(this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13688385/