2

私は次のhtmlを持っています:

<li><a href="#" filename="prettygirls_1"><img src="large/prettygirls_1.jpg" alt="Pretty Girls Doing Horrid Things" /></a></li>
<li><a href="#" filename="prettygirls_2"><img src="large/prettygirls_2.jpg" alt="Pretty Girls Doing Horrid Things" /></a></li>

filenameプロパティを変数に渡し、ソースファイルの大きなバージョンを新しいウィンドウで開くjqueryを作成しようとしています。

私のjqueryは次のようになります(これが正しくないことはわかっています):

$('div#slider ul li a').click(function() {
    var img_to_load = $(this).attr('filename');
    filePath = 'large/'; 
    $('<a href=" ' + filePath + img_to_load + '.jpg' + 'target="_blank"' + '</a>').html();
    //alert (img_to_load);
});

これを作成するにはどうすればよいですか?

すべてのコードは実際にはここで入手できます:http://dev.jessicaharby.com/work/tempindex.cfm

4

4 に答える 4

4

これを試して:

JS:

window.open(filePath + img_to_load + '.jpg', '', 'width=640,height=480');

幅と高さを適宜変更するか、正確な幅と高さを指定できない場合は、

window.open(filePath + img_to_load + '.jpg');

window.open-MDNを参照してください。

イベントで開かれるため、開かれてclickいるURLが同じドメインにある限り、ポップアップブロッカーによってブロックされることはありません。

于 2012-07-09T10:33:12.860 に答える
1

私は提案します:

$('ul li a').click(function(e) {
    // prevents the default action of the link's click-event ('e'), above
    e.preventDefault();
    // finds the 'img' element within the 'a', using 'find()`
    // and converts that, using '[0]' to a plain DOM node
    // and retrieves the full, absolute, 'src' from that element
    var img_to_load = $(this).find('img')[0].src,
        imgWindow = window.open(img_to_load, 'imgWindow');
});​

JSフィドルデモ

上記は、同じ名前(この場合は関数'imgWindow'の2番目のパラメーター)で開いているウィンドウがあるかどうかを最初に確認するため、その後にクリックされた画像を同じウィンドウで開きます(開いたウィンドウを新しい画像要素で再読み込みします)window.open())そして、存在する場合は、それを再利用します。それ以外の場合は、その名前のウィンドウが開きます。

画像を毎回独自のウィンドウで開きたい場合は、そのパラメータを省略して、次のコマンドを使用します。

$('ul li a').click(function(e) {
    e.preventDefault();
    var img_to_load = $(this).find('img')[0].src,
        imgWindow = window.open(img_to_load);
});​

JSフィドルデモ

参照:

于 2012-07-09T10:32:24.377 に答える
0

現在、上記のクエリのソリューションはコードビンによって提供されています。だから、http://codebins.com/codes/home/4ldqpb5で試してみてください

$(function() {
    $('div#slider ul li a').click(function(e) {
        e.preventDefault();
        var imageWin;
        var imageUrl = $.trim($(this).attr('filename')),
            imageWin = window.open(imageUrl);

    });
});
于 2012-07-09T11:52:37.203 に答える
0

これを試して:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery demo</title>
  <script src="jquery-1.9.1.js"></script>
</head>
<body>
<script>
$(document).on("click", "#btn", function(event) {
    window.open("http://www.google.com", '_blank');
});
</script>
<input type=button name="btn" id="btn">
</body>
</html>
于 2013-09-11T04:54:41.627 に答える