0

私はこのコードを持っています:

function Imagehover(obj,img){               
    jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");            
}
function Imageclick(obj,img){                               
    jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");        
}
function Imageout(obj,img){                                                                     
    jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");                                
}

<a href="<?php echo JURI::root(); ?><?php echo $langsefs->sef;?>"><img id="<?php echo $langsefs->sef;?>flag" style="height: 40px;margin-right: 10px;width: 47px;" src="<?php echo JURI::root(); ?>/templates/codecraft.gr/images/<?php echo $langsefs->sef; ?>_flag.png" onclick="Imageclick(this,'<?php echo $langsefs->sef; ?>_flag_pressed')" onmouseout="Imageout(this,'<?php echo $langsefs->sef; ?>_flag')" onmouseover="Imagehover(this,'<?php echo $langsefs->sef; ?>_flag_over')" alt="<?php echo $langsefs->sef; ?>"/></a>

しかし、フラグをクリックするたびに画像が消え、href のリダイレクトが新しいページに実行されます。画像のonclickイベントを削除すると

function Imageclick(obj,img){                               
    //jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");      
}

画像は消えません。したがって、onclickイベントが発生してサーバーから画像を取得しようとすると思いますが、hrefも実行されるため、ページのリダイレクトが開始されたため、画像がユーザーのブラウザーに到達する機会がありません。

href 属性を削除せずに、画像がユーザーのブラウザーにダウンロードされ、リダイレクトされることを確認するにはどうすればよいですか?

4

2 に答える 2

2

あなたが使用することができますevent.preventDefault():

このメソッドが呼び出された場合、イベントのデフォルト アクションはトリガーされません。

$('a').click(function(e){
   e.preventDefault();
   var href = $(this).attr('href');
   $("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png").promise().done(function(){
      window.location = href;
   })        
})
于 2012-07-06T20:33:10.920 に答える
0

イベント ハンドラーから false を返して、既定の動作を回避します。ページアドレスを直後に変更したい場合は、画像が置き換えられた後に各ハンドラーに場所のリダイレクトを配置する必要がある場合があります。

于 2012-07-06T20:32:45.390 に答える