All- I know this has been asked, but the previous solutions don\'t seem to apply to my situation.
I have a simple table with a number of records in each row, with th
OKay, so hopefully this will help someone down the road. I actually had two problems going on:
I got around this by just setting the name of the dialog box to be the same as the calling div, appended with "Diag". Then I can track it no matter where jquery puts it. Whew.
$(".deleteLinkDiag a").livequery('click',function() {
var urlLoad = $(this).attr("href");
var myParent = $(this).parents("div:eq(0)"); //container div to be replaced
var myDiag = myParent.attr('id') + 'Diag';
$("#" + myDiag).dialog({
bgiframe: true,
resizable: false,
height:140,
modal: true,
autoOpen: false,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
"Confirm":function()
{
myParent.load(urlLoad, function() { });
$(this).dialog("close");
},
Cancel: function()
{
$(this).dialog("close");
}
},
close: function(ev, ui) {
$(this).dialog("destroy");
}
});
$("#" + myDiag).dialog('open');
return false;
});
It seems most likely that the problem lies in the fact that the actual dialog div isn't actually being selected correctly. And that (as far as I'm understanding the situation) stems from a bigger problem of wrong requirements on your part.
If you want to reference a specific div, then you should reference that specific div. Yet, I hear you saying you want to reference a specific div (which is literally the only div which is used as a dialog) at the same time that you say you're afraid to reference that div by an ID.
Basically, if there is only one div that's used as the dialog, then accept that and just call that div a name:
<div id="dialog"/>
.
myDiag = $('#dialog');
This way there is no confusion on if you are selecting the correct div.
However, if what I said is not an option for some reason, then you can set break points in firebug at the point where you assign myDiag
so that you can see what myDiag
actually is at execution time.