Friday, October 30, 2009

[jQuery] .click using if else not working...?

Hello,
I am trying to build a menu close to a explorer or tree menu that uses
ajax. I have been able to get it working some of the time. My problem
is with the click function below. I originally used a toggle but since
it is not bound to a live event because this is has ajax generated
content it would not work.

I am using a if / else detecting if the object is hidden or not. It
works some of the time but not all of the time?
I click and nothing happens. I looked in firebug at the console and
there seem to be no errors?

Does anyone have any suggestions on how I can use the .toggle
with .live or how I can redo my if else so
that it works every time? See code below.

Thanks!


-------------------------------
$('.ahref',this).live("click", function(){


var id = $(this).attr('id');

var subid = $(this).attr('href');

if($('.sub'+subid).is(':hidden')) {

if($('.sub'+id).text() == '') {
//$("div.sub"+id).append("sub menus goes here");
var rand = '?random=' + Math.random();

$.getJSON('mclicks.php'+rand,{subid:subid,id:id},function(data)
{
$.each(data, function(i,item){
$.each(item, function(intIndex, objValue) {
// console.log(this);
$("div.sub"+subid).append("<a class='ahref' href='" +
intIndex + "' onclick='return false;'>" + objValue + "</a> <div
class='sub" + intIndex + " data'></div><br /> ");
});
});

});

$(".sub"+subid).addClass("data").slideDown(100);

} // end of blank text check...
} else {
$('.sub'+subid).slideUp(100);
$("div.sub"+subid).html("");
}

}, function () {
// $(this).html('Hide Clicks');
$('.sub'+subid).slideUp(100);
});

----------------------------------

generated html

-----------------------------------

<a class="cat" href="17">Wedding & Special Event Services</a>
<br/>
<div class="box17 data" style="display: block;">
<a id="17" class="ahref" onclick="return false;" href="9">Bakeries</a>
<div class="sub9 data" style="display: block;">
</div>
<br/>
<a id="17" class="ahref" onclick="return false;" href="10">Bands &
Musicians for Hire</a>
<div class="sub10 data" style="display: none;"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="11">Banquet
Centers</a>
<div class="sub11 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="21">Catering</
a>
<div class="sub21 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="46">DJs</a>
<div class="sub46 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="165">Event
Rentals</a>
<div class="sub165 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="63">Florists</
a>
<div class="sub63 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;"
href="170">Limousines</a>
<div class="sub170 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;"
href="123">Photographers</a>
<div class="sub123 data"/>
<br/>
<a id="17" class="ahref" onclick="return false;" href="150">Venues</a>
<div class="sub150 data"/>
<br/>
</div>

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate