[jQuery] livequery $(this) is null? (this is second post, accidentally clicked post)
jQuery.create_table.prepare_add_item=function()
{
var items=$('#canvas > thead > tr > th');
var prev_value='';
var input_item=$('#input_item');
var head=$('#canvas > thead > tr');
// FIRST METHOD
$('#canvas > thead > tr > th').click(
function()
{
alert($(this).attr('id'));
}
);
///SECOND METHOD
$('#canvas > thead > tr > th').livequery(
function()
{
$(this).click(function(){
alert($(this).attr('id'));
})
}
);
//THIRD METHOD
$('#canvas > thead > tr > th').livequery('click',
function(event)
{
var elem=$(this);
alert(elem.attr('class'));
if (elem.is('.manipulated'))return;
elem.addClass('manipulated');//add class that it is being
manipulated
prev_value=elem.html();//store whatever it's in here before
// alert(elem.id);
elem.empty();
elem.append(input_item);
}
);
THIS IS THE HTML
<table id="canvas" border="1">
<thead>
<tr>
<th id="1">was</th>
<th id ="2" class="add_item">First item to compare</th>
</tr>
</thead>
<tbody>
<tr class="add_attr">
<td> <input type="text" value="" disabled="true"></td>
</tr>
</tbody>
</table>
</div>
<span id="assets" style="display:none;">
<input id="input_item" type="text" />
<span id="attribute">
<input id="name" type="text" />
<select>
<option>text</option>
<option>number</option>
<option>time</option>
<option>true/false</option>
<option>video</option>
</select>
</span>
</span>
on clicking:
The first method works as advertised.
the second method gives me undefined
the third method gives me undefined and will throw an error on
elem.addClass() , the error is "t has no properties"
Am I missing something?