Hello,
Foloowing your advices, my code looks so now :
$(document).ready(function()
{
clicks();
} );
function clicks()
{
........
clicks();
}
I will try to bind just new loaded links instead of bind the whole
three each time it loads.
Thanks all for your help, it work great that way :-)
On 25 juin, 23:43, "Dan G. Switzer, II" <[EMAIL PROTECTED]>
wrote:
> Krafton,
>
>
>
> >That's exatcly my problem, following your advice, this is my new
> >code :
>
> >$(document).ready(function()
> > {
> > $("a").bind("click",function()
> > {
> > var link=$(this).attr("id");
> > $("#primaryContentContainer").load("pages/"+link
> >+".html",function()
> > {
> > $("a").unbind("click");
> > $("a").bind("click",function()
> > {
> > var
> >link=$(this).attr("id");
> > $
> >("#primaryContentContainer").load("pages/"+link+".html");
> > });
> > });
> > };
> >} );
>
> >I had to had an unbind, else my page was loaded twice. But i works the
> >way you told me.
>
> >What you told about duplicate IDs is right.
>
> >If i use href="#dos622" instead of id="dos622" isn't there a risk of
> >confusion with anchor?
>
> >Can i use rel="dos622" instead of ID or href?
>
> >I don't want to use href, because i don't want to intercept external
> >links nor anchors in my pages.
>
> You could use "rel" (although some might argue it's not totally semantically
> correct) or use the class--although I'd lean towards rel.
>
> Also, instead of unbinding, you can apply the click() to just the new DOM
> fragment--no need to reparse the entire DOM:
>
> $("#primaryContentContainer").load(
> "pages/"+link+".html",
> function(){
> var pcc = this;
> $("a", pcc).bind("click",
> function(){
> var link=$(this).attr("id");
> $(pcc).load("pages/"+link+".html");
> }
> );
> }
> );
>
> Actually, you'd be better off just breaking that into a re-usable function:
>
> /*
> this function will add click handlers for the entire document
> or just a fragment. If no content argument is supplied, run
> run the operation for the entire document object
> */
> function addClickHandler(context){
> $("a", context || document).bind(
> "click",
> function (){
> var link = $(this).attr("id");
> $("#primaryContentContainer").load(
> "pages/"+link+".html",
> function (){
> // add clicks to
> #primaryContentContainer
> addClickHandler(this);
> }
> );
> }
> );
>
> }
>
> // add the click handlers
> $(document).ready(function(){
> addClickHandler();
>
> });
>
> I didn't test the above code, but it should be pretty close to functional.
> The idea is to create a single function you can re-use. By using a "context"
> you can run the bind behavior for the entire document or just a DOM
> fragment.
>
> -Dan