1/ i would make sure the div exist before initalising the jqModal, so  add
the jqm initialisation to your createDiv function or through a callback
executed when the createDiv is done.2/ for your specific question: your
check is incorrect. The good use would be to use jqmodal onShow() callback
and check at that moment whether the link is valid or not.

onshow:function(hash){
if (hash.t.attr('href') ==='#' || hash.t.attr('href') ===''){
return false;
}
// otherwise, launch the popup
hash.w.css('opacity',0.88).show();

}

from the doc:

        
  Each callback is passed the jqModal "hash" for a window. Relevant
hash properties are;

        -----------------------------------
        w: (jQuery object) The window element. e.g. '#example' in the sample 
above
        c: (object) The config object (holds passed+default parameters)
        o: (jQuery object) The overlay
        t: (DOM object) The triggering element
        
  NOTE; If you supply a "onHide" callback, you MUST execute hash.o.remove(); to
    remove the overlay. You should also hide the window via hash.w.hide();, or
    with a special effect.

  NOTE; If you supply a "onShow" callback, you should make the dialog visible
    via hash.w.show();, or with a special effect.

  NOTE; "onLoad" callbacks are ONLY executed if the ajax parameter was passed.
    onLoad is called after the ajax response. As with $.load(), the "this"
    scope is a reference to the ajax target as a DOM element.





On Wed, Mar 25, 2009 at 6:13 PM, Tad <tad.ni...@gmail.com> wrote:

>
> Hello,
> I'm new to jquery and jqmodal. I have a script that runs fine except
> when the URL (href) of the anchor tag is Blank or "#". so what I want
> to do is check for that possibility and stop the Jqmodal from acting
> or put up an error message, without my page being messed up. I've
> tried to use callbacks, but get an error that the hash is not defined.
> I tried to use the click event of the anchor, but the Jqmodal would
> load the content but only show it after clicking another anchor tag or
> clicking the same one again. the goal here is to have a default pop Up
> jqmodal that checks the link it is given and doesn't use it if it will
> cause an error.
>
> ~~ code that works but doesn't check href of anchor~~
> $(function(){
> /* init pop-up/overlay */
>    popUp.init();
> });
> /* pop-up/overlay Functionality */
> var popUp = {
>    init: function(){
>        var link = $("a.popup");
>        if(link.length <= 0)
>            return false;
>        popUp.createDiv();
>
>        $('div#popup-wraper').jqm({
>           trigger: $("a.popup"),
>           closeClass: 'close',
>           toTop: true,
>           ajax: '@href',
>           target: $("div#popup-wraper div#popup"),
>           ajaxText: ("loading..."),
>           cache: false
>        })
>    },
>    createDiv: function(){
>        var strJq = "<div id='popup-wraper' class='jqmWindow'>";
>        strJq += " <div id='overlay-utility'>";
>        strJq += "  <a class='close' href='#'>Close</a>";
>        strJq += " </div>";
>        strJq += " <div id='popup'>";
>        strJq += " </div>";
>        strJq += "</div>";
>        $("body").append(strJq);
>    }
>
> }
>
> /* pop-up/overlay Functionality END */
> ~~ end code ~~
>

Reply via email to