2013-04-23 3 views
-3

У меня есть небольшой скрипт:динамические функции JQuery нажмите

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('a').click(function (e) { 
     e.preventDefault(); 
     $('#iframe2').show(1000); 
     $('#iframe2').attr('src', "http://www.htp-crm.pl/"); 
     $(this).hide(1000); 
     }); 
    }); 
</script> 

и HTML:

<a href="#" id="1">LINK1</a><br> 
<a href="#" id="2">LINK2</a><br> 
<a href="#" id="3">LINK3</a><br> 
1<iframe id="iframe1" style="display: none;"></iframe><br> 
2<iframe id="iframe2" style="display: none;"></iframe><br> 
3<iframe id="iframe3" style="display: none;"></iframe><br> 

Как я могу сделать это с помощью функции динамического? Она всегда будет один и тот же: связь с ID = 1, показывают iframe1 связи с ID = 2 показывают iframe2 ... связь с идентификатором = 27 показать iframe27


Я использую это:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('a').click(function (e) { 
      var linkId=$(this).attr('class'); 
      e.preventDefault(); 
      $('.show_km_'+linkId).show(1000); 
      $('.show_km_'+linkId).attr('src', "calendar_files/index-km.php?id='.$row['iid'].'"); 
      $(this).hide(1000); 
     }); 
    }); 
</script> 

Этот сценарий используется для отображения расстояния между мной и выбранным адресом. if iframe have 'display: none', почему у меня есть вопрос о разрешении на размещение? Я думал, что вопрос может возникнуть после того, как я нажму ссылку, чтобы показать iframe :( Могу я что-то изменить?

// ОК, я исправляю скрипт Google Maps :). Спасибо всем, чтобы показать мне, как сменить сценарий. С наилучшими пожеланиями!

+0

Я думаю, что из его вопроса его довольно очевидно, что hes попробовал .. – Steve

+0

@Steve (улыбка) –

ответ

0

попробовать это ....

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('a').click(function (e) { 
      var linkId=$(this).attr('id'); 
      e.preventDefault(); 
      $('#iframe'+linkId).show(1000); 
      $('#iframe'+linkId).attr('src', "http://www.htp-crm.pl/"); 
      $(this).hide(1000); 
     }); 
    }); 
</script> 
+0

не проверено ....! –

+0

Протестировано - отлично работай для меня :) Спасибо за помощь! –

0

Вы можете перебрать ваши якоря, чтобы получить id и назначить этот id в IFRAME, который вы хотите показать:

$('a').click(function(e) { 
    e.preventDefault(); 
    var id = $(this).attr('id'); 
    $('iframe#' + id).show(); 
}) 
+0

Вам не нужно использовать 'each'. 'click' (или' on ("click") 'будет перебирать выбранные элементы в любом случае. – Archer

+0

@Archer Спасибо, обновлено. – Eli

0

Я бы рекомендуем использовать data для ссылки на связь между анкерами и фреймами, например, это ...

<a href="#" data-iframe="iframe1">LINK1</a><br> 
<a href="#" data-iframe="iframe2">LINK2</a><br> 
<a href="#" data-iframe="iframe3">LINK3</a><br> 
1<iframe id="iframe1" style="display: none;"></iframe><br> 
2<iframe id="iframe2" style="display: none;"></iframe><br> 
3<iframe id="iframe3" style="display: none;"></iframe><br> 

, то вы можете ссылаться на данные в click обработчика, как это ...

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("a").on("click", function (e) { 
      e.preventDefault(); 
      var $iframe = $("#" + $(this).data("iframe")); 
      $iframe.show(1000); 
      $iframe.attr("src", "http://www.htp-crm.pl/"); 
      $(this).hide(1000); 
     }); 
    }); 
</script> 

Я также рекомендую не использовать номера для идентификаторов. Помимо того, что это не нравится читать, поскольку он ничего не говорит о том, что это такое, некоторым браузерам это не нравится.

+0

Вы правы. Мне интересно изменить ID для некоторых« классов »или« данных ». , –

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