I'd love to do that, but my app doesn't work in FF... :o( Know of a good (and free) javascript console debugger for IE?

Chris

Ⓙⓐⓚⓔ wrote:
Christopher,
When I have a problem like this, I take a peek at what's really going
on with firebug... I was turned on to firebug by the folks here
first... it makes debugging almost fun!
Jake

On 1/4/07, Christopher Jordan <[EMAIL PROTECTED]> wrote:
 Thanks Jake. I've been thinking that something is off by one, but I can't
tell where it's getting that way. I've been putting debugging alerts all
over the place. It seems to loop through the requisite number of times. :o/

 I'll give something like you suggest a go... see what that tells me. I'll
report back if it didn't solve my problem... or if it does help I'd still
like to find out where I'm going wrong with the one off. I must be
overlooking something. I've been looking at this code for too long. It's
probably the most jQuery I've used in one app before. Cool stuff really. :o)

 Cheers,
 Chris


 Ⓙⓐⓚⓔ wrote:
 if ThisIndex is off by one .. you'd see the missing last click
symptom... it's hard to tell because the code is large and I can't see
if the classes get set correctly... you can simple slam the click on
all the elements... it is overkill but that may shed some more light.

On 1/4/07, Christopher Jordan <[EMAIL PROTECTED]> wrote:


 I've got a stumper... well it's a stumper to me. I'm hoping someone here
can help me with it. I posted the problem before, but it's slightly
different now.

 In the function to follow, I'm adding a div element to the DOM that
represents a "row". Each row has a unique ID. For each of these divs I'm
adding a mouseover, mouseout, and click event. All three work perfectly for
all but the last row. It's like the events never get assigned.

 In this case, the user can select several dates from calendars and add them
to a list. This list is what's represented by these rows (one row for each
date). If the user adds just one row, the click event fails to bind. If the
user adds any other number of rows the last row will fail. If the user adds
four rows and then adds four more (or five more or six more... it doesn't
matter). The last one in the first group fails, and so does the last one in
the next group.

 Here's my code: (NOTE: the use of the double pounds(##) is intentional. I'm
writing in ColdFusion and this is how the pound sign is escaped.)

 function AddToPending(){
 var OTAIndex = 0;
 var i, NumberOfRows, ThisRow, RowClass, ThisIndex;
 var SelectedDates = "";
 var OrdersToAdd = new Array;
 // gather relevant data from the DOM
 var CostCenterInfo = $("##CostCenterName_ID").val();
 CostCenterInfo = CostCenterInfo.split("~");
 //var CostCenterID = CostCenterInfo[0];
 var CostCenterName = CostCenterInfo[1];
 var ShiftData = $("##Shift_ID").val();
 ShiftData = ShiftData.split("~");
 var ShiftCode = ShiftData[0];
 var ShiftID = ShiftData[1];
 var ShiftName = ShiftData[2];
 var Classification = $("##Classification_ID").val();
 var Quantity = $("##Quantity_ID").val();
 var SpecialInstructions =
$("##SpecialInstructions_ID").val();

 // this one gets the dateValue of each selected cell and adds
everything to the array of structs.
 $("[EMAIL PROTECTED]").each(function() {
 OrdersToAdd[OTAIndex] = new Object;
 OrdersToAdd[OTAIndex].ShiftDate = this.dateValue;
 OrdersToAdd[OTAIndex].CostCenterName =
CostCenterName;
 OrdersToAdd[OTAIndex].ShiftName = ShiftName;
 OrdersToAdd[OTAIndex].ShiftID = ShiftID;
 OrdersToAdd[OTAIndex].ShiftCode = ShiftCode;
 OrdersToAdd[OTAIndex].Classification =
Classification;
 OrdersToAdd[OTAIndex].Quantity = Quantity;
 OrdersToAdd[OTAIndex].SpecialInstructions =
SpecialInstructions;
 OTAIndex++;
 });
 if(!OTAIndex){alert("Please select at least one date from the calendars
on the left.");return;}

 OrdersToAddJSON = $.toJSON(OrdersToAdd);
 $.ajax({
 type: "POST",
 url: "JSON_WriteOrderData.cfm",
 datatype: "html",
 data:
"ClientNumber=#ThisClientNumber#&OrderStruct=" +
OrdersToAddJSON,
 success: function(IndexList) {
 NumberOfRows = CFJS.ListLen(IndexList);
 alert(IndexList);
 for(i = 0; i < NumberOfRows; i++){
 ThisIndex = CFJS.ListGetAt(IndexList, i + 1);
 //alert(ThisIndex);
 ThisTmpDate =
$.odbcDateTimeParse(OrdersToAdd[i].ShiftDate);
 ThisMonth = ThisTmpDate.getMonth() + 1;
 ThisDay = ThisTmpDate.getDate();
 ThisYear = ThisTmpDate.getFullYear();
 ThisDate = ThisMonth + "/" + ThisDay + "/" + ThisYear;
 RowClass = "OddRow";
 /*
 if(i % 2){
 RowClass = "EvenRow";
 }
 */
 ThisRow = "";
 ThisRow += "<div class=\"OrderEntryListRow " + RowClass +
"\" RowType=\"" + RowClass + "\" RowState=\"Off\" ID=\"Row_" + ThisIndex +
"\">\n";
 ThisRow += "<span class=\"Date Cell\">" + ThisDate +
"</span> \n";
 ThisRow += "<span class=\"CostCenter Cell\">" +
CostCenterName + "</span> \n";
 ThisRow += "<span class=\"ShiftName Cell\">" +
ShiftName + "</span> \n";
 ThisRow += "<span class=\"Classification Cell\">" +
Classification + "</span> \n";
 ThisRow += "<span class=\"Quantity Cell\">" + Quantity
+ "</span>\n";
 ThisRow += "</div>";
 $("##OrderList").append(ThisRow);
 $("##Row_" +
ThisIndex).mouseover(function(){
 $(this).removeClass("OddRow");
 $(this).addClass("OddOver");
 }).mouseout(function(){
 $(this).removeClass("OddOver");
 $(this).addClass("OddRow");
 }).click(function(){
 alert($(this).attr("ID"));

OrderListClickEvents($(this).attr("ID"));
 });
 }
 },
 error: function(){
 alert("Error: Please note the username and the time and called
the Nursefinders helpdesk for assistance.");
 }
 });
 }

 Anybody have a clue what I'm doing wrong?
 --
http://www.cjordan.info

_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/







 --
http://www.cjordan.info

_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/






--
http://www.cjordan.info

_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to