If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

View Poll Results: Why click is triggering twice with other browsers than IE?

Event JS redundancy with different browsers

-----------------------------------------------------------------------------------
Question 1:
-----------------------------------------------------------------------------------
On Fri, Jan 11, 2013 at 8:53 AM, Daniel Pisters wrote:
> Dear Sir.
>
> I have integrated your sorttable.js module in my web application as a
> poor web JavaScript developer beginner :
>
> Please see the result on the Creative part of my new website :
>
> http://www.danielpisters.eu/
>
> or
>
> http://www.imaginenigma.com/
>
> or soon (as stupid nationalism requires)
>
> http://www.danielpisters.be
>
> This site is build from Dreamweaver CS6. On my Internet Explorer 8
> (yet with Windows XP) , when I click on a header column, the content
> is perfectly sorted in ascending or descending order. But with Google
> Chrome or Safari, the sorting does not work ; it is sorted only once
> in descending order. Can you suggest me a way to change your code to
> match the specificities of these damned browsers?
>
> I thank you in advance,
>
> Daniel Pisters

---------------------------------------------------------------------------------
Answer to Question I
---------------------------------------------------------------------------------
<pre lang="xml">Your problem, according to the web console in Firefox, is being throws by thiscode:

I put in comment the code you have pointed out as probably guilty and it did not change anything so that I uncommented it.
I have tested your code on IE, Firefox, Google Chrome and Safari. Google Chrome is perceived as a combined, hybrid Opera/Safari probably from legacy upon which this new monster was build

Compared to the first (IE), those browsers have different behaviors in catching the click event; that is to say: dean_AddEvent is called twice for the same event so that when the column was sorted, it is sorted again in the reverse order, resulting in a column being always sorted in the same order (descending). Please, see the sequence bellow:

After loading the page:

<Click>
dean_addEvent
dean_addEvent
reverse

<Click>
dean_addEvent
re-reverse
dean_addEvent
reverse

The sort occurs twice for the same event.

Note however that I have experienced such event redundancy in non web system, event programming such as Oracle Forms 4.5 and so on for Windows.

I repeat that I am only a poor JavaScript beginner. I don't like very much this programming style, though it may be very tricky and elegant at the same time, such as yours. An objet language without class can be understood by the fact it has to deal with the dynamic of web pages, which does not allow referring upstream to static definitions, I suppose, but you are foreseeing as well as me that it will not last very long and that the near future is to be able programming for the web as for a windows application, without seeing much difference. Beside those philosophical considerations, please help me, because your programming level in JavaScript is too high in comparison with mine to allow pretending to debug it an correct it in the good way.

Thank in advance,

Daniel Pisters

-----------------------------------------------------------------------------------
This sequence can be traced on my test website: http://espritnegatif.businesscatalyst.com
-----------------------------------------------------------------------------------

Return

Did you note that that there is a return statement in each {} so that an ELSE is not necessary. However, I inserted an ELSE between the two bracketed statements in order to be sure beyond programming logic by the practical verification, and it didn’t work better.
In any case, I thank you for your attempt to solve my damned problem and continue hoping you to provide a solution.
Daniel Pistershttp://danielpisters.euhttp://danielpisters.behttp://imaginenigma.com

No. <script src="/javascripts/sorttable.js"></script> appears only one time in the <head> part of the HTML file. I have verified it by a search. How did you note that sorttable.js was included several time in it?

No, in /Creative.html the script (sorttable.js) is included twice, not in the head tag at the top of the html document, but in two other separate head tags - a quick search will prove that. Your head and body tags are all over the place it seems! :S

Html Creative refers to two others in a container

In fact, sorttable.js is included only once in two othes html CreativePouhons.html and Inventairesdesoeuvres.html in a a container. In this two subcreatives, sorttable.js is well included only once, but when you right-click to see the source, all seem to be mixed in only one html file, although it is well separated in Creative.html:

Then that's your problem: both CreativePouhons.html and Inventairesdesoeuvres.html contains <head> and <body> elements, and both files imports the sorttable.js script which affects the final page, Creative.html (which is the only page the browser sees). I'm guessing you want to either use iframes here, or simply remove the body tag and the whole head from those files and only import the sorttable script in the head of Creative.html.