0

私は何もしていないように見える次のjQueryコードを持っています。リンクをクリックすると、その属性の値を取得して's属性urlにコピーしようとしています。iframesrc

基本的に、これは通常のリンクのように動作するのではなく、iframe内でリンクを開くことになっています(新しいリンクがクリックされるたびにiframeのコンテンツが置き換えられます)。

では、私のコードの何が問題になっていますか?

$('p.tweet a').click(function(){
    var link = $(this).attr('url');
    $('iframe').attr('src',link);
})
4

3 に答える 3

5

多分あなたは属性を取得したいかもしれませんhref(そしてデフォルトのアクションを防ぐことさえできます)

$('p.tweet a').click(function(ev){
    ev.preventDefault();
    var link = this.href;  // no need to call the $ function
    $('iframe').attr('src',link);
})
于 2012-07-09T22:28:11.460 に答える
5

では、私のコードの何が問題になっていますか?

サブスクライブしたアンカーのクリックハンドラーからfalseを返すことでデフォルトのアクションをキャンセルしていないため、ブラウザーがそのページからリダイレクトする前にスクリプトを実行する機会を残していません。

$('p.tweet a').click(function() {
    var link = $(this).attr('href');
    $('iframe').attr('src', link);
    return false;
});

$(this).attr('href')ちなみに、の代わりに使用したことに注意して$(this).attr('url')ください。この属性は、標準のHTMLhrefの属性よりもアンカーに一般的ですが、アンカーに属性を持つマークアップを発明した場合は、それを試してみることができます。urlurl

于 2012-07-09T22:28:12.693 に答える
0

The URL of a hyperlink is contained in the href attribute, not the url attribute.

You should also prevent the default action, making your code look like this:

$('p.tweet a').click(function(event){
    var link = $(this).attr('url');
    $('iframe').attr('src',link);
    // cancel default event
    event.preventDefault();
});
于 2012-07-09T22:28:57.197 に答える