2012-04-10 11 views
1

ich etwas wirklich cool an Yippy gesehen habenladen dynamische URL in iframe

Sie sind für einen schnellen Blick die URL in einem Iframe zu laden. Ich möchte das Gleiche für meine Website tun. Ich bin die bing API, zB mit: JsFiddle

So hängten ich einen Iframe und ein div das Ladeereignis auslösen:

<div class="blok"></div> 
<iframe class="ifram" src="" width="100" height="100"></iframe> 

Und ich versuchte dies für die Veranstaltung:

$(".block").click(function() { 

$(".ifram").attr("src", (".desc a", this).text()); 
}); 

Funktioniert nicht.

Antwort

2

Es gibt etwa 6 Dinge falsch:

  1. Sie .click() verwenden, aber die Ergebnisse werden dynamisch hinzugefügt, daher müssen Sie wie .on()
  2. Das Element einen Live-Handler verwenden ist .blok im html , aber Sie sind verbindlich, die Veranstaltung .block
  3. Sie versuchen, die src von jedes.ifram Element
  4. gesetzt
  5. Sie haben vergessen, die $ vor Ihrem Wähler
  6. Sie, indem Sie Ihre Wähler ein Kontext des Elements selbst, aber der Anker Sie befindet sich in einem Geschwister finden wollen
  7. Sie den Text des Ankers Zugriff auf nicht die href.

Der folgende Code sollte tun, was Sie wollen:

$("body").on('click', '.blok', function() { 
    $(this).siblings(".ifram").attr("src", $(this).siblings('p.desc').find('a').attr('href')); 
}); 

jsFiddle: http://jsfiddle.net/aHCT5/18/

+0

Unglaublich. Vielen Dank :) Und danke für das Aufzeigen und erklären so detailliert. – Youss

2

Es scheint wie ein Syntaxfehler.

$(".block").click(function() { 
    $(".ifram").attr("src", $(".desc a", this).text()); 
}); 

haben Sie vergessen, "$" vor (".desc a", this).text() zu setzen.