2013-03-22 5 views
-1

HTML, выглядит следующим образом:Атрибут данных в кадре возвращения неопределенными из JQuery

<ul class="categoryitems"> 
    <li><a data-url="../po/browse_po.php" href="welcome.php" target="main">PURCHASE ORDERS</a></li>   
    <li><a data-url="../po/po_email_config.php" href="welcome.php" target="main">PO EMAILS</a></li>  
</ul> 

Игнорируйте hrefs они не являются актуальными. Я планирую предотвратить дефолт по ним.

Что Релевент является JQuery неудачи:

$('a').click(function() 
    { 
     alert($(this).parent().html()); //shows the a tag with the data-url attribute 
     //$(this).data('url',"..someurl.com"); 
     alert($(this).data('url')); //returns undefined; when the previous line is uncommented works 
     alert($(this).attr('data-url')); //this works   
    }); 

Если это имеет значение функция нажмите обернута в этом:

$("#wndNavbar").ready(function() { 

}); 

, потому что его в кадре:

<frameset cols="<?=$gl_navbar_width?>,*" frameborder="0" framespacing="5" border="0"> 
    <frame id="wndNavbar" name="wndNavbar" src="nav_bar.php" scrolling="auto" marginheight="0" noresize> 
    <frame name="main" src="welcome.php" scrolling="auto" marginheight="0" noresize> 
</frameset> 
+0

Невозможно воспроизвести http://jsfiddle.net/BhmcH/ – Musa

+0

Не является ваш HTML. – Musa

+0

Думаю, нам нужно больше узнать о вашем коде. Особенно если есть iframe? Действительно ли 'id' вашего iframe' wndNavbar'? – Steve

ответ

2

Это не то, как вы читаете data-url. это правильный путь:

alert($(this).data('url')); 

или

alert($(this).attr('data-url')); 

Обновление: Поскольку выше не кажется, чтобы исправить это для вас, вы пытались использовать

$(document).ready(function() { 

}); 

или

$("#wndNavbar").live(function() { 

}); 

вместо

$("#wndNavbar").ready(function() { 

}); 

UPDATE 2: Вы, кажется, с помощью frame, а не iframe. ready не работает на frame с, так что вам нужно использовать load:

$("#wndNavbar").load(function() { 

}); 
+0

, но (насколько я знаю) вы не можете использовать 'ready' ни на чем, кроме 'document'. Поэтому попробуйте «жить». – Steve

+0

Вы говорите, что ваш iframe 'id' является' # wndNavbar'? Или '# wndNavbar' внутри iframe? – Steve

+0

рад, что я мог бы помочь. :) – Steve

Смежные вопросы