give each div an id, then display the id when you bind click, you'll
see you are binding the wrong div.
look back in the jquery archives for a debugger for IE.
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/
>
>
>
--
Ⓙⓐⓚⓔ - יעקב ʝǡǩȩ ᎫᎪᏦᎬ
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/