0

私がする必要があるのは、IDが#logoのdivのコンテンツをIDが#input_2_15のフォームフィールドにコピーすることです。

divのコンテンツは画像(<img src.../>)ですが、これは変更されます...ページの読み込み時にコンテンツを入力フィールドにコピーするコードがありますが、画像が変更されるたびにコンテンツをコピーするコードが必要です(およびページを更新せずにこれを行います)。これどうやってするの?

また、画像名のみをコピーする関数を取得することは可能ですか?全体ではなく12345.png <img src=..../>

ミロ

4

3 に答える 3

0

もしかして

function getUrl(id) {
  // function to return the source of an image inside an object with given ID
  return $("#"+id).find("img").attr("src");
}

$(document).ready(function() {
  var currentImage = getUrl("logo"); // get the url of the div now (empty I guess)

  $("#ajaxtrigger").click(function() { // some link with ID ajaxtrigger

    $("#logo").load("someurlreturningsomehmtl",function(){ // loads the image
      if (currentImage != getUrl("logo")) { // did it change?
        currentImage = getUrl("logo"); // save the name
        $("#input_2_15").val(currentImage); // update the field
      }
    })
  });
});
于 2012-04-04T13:10:02.630 に答える
0
$('#logo').find('img').attr('src');

これにより、画像の場所が得られます..これを2番目のdivのimg srcに追加するだけです

于 2012-04-04T12:05:50.040 に答える
0

私はこれを「パブリッシュとサブスクライブ」(「Pub/Sub」) アプローチのケースと考えています。

この記事では、jQuery 1.7 で Pub/Sub を実行する 4 つの方法を学びます。私は jquery 1.7 の新機能、つまり $.Callbacks 機能を利用するオプション 1 を選択しました。この記事は十分な理解を与えてくれますが、ここではそれを改善しようとはしません。

以下のコードはオプション 1 をわずかに変更したバージョンで、グローバル var の必要性を回避しています。

$.Topic = function(id) {
    var callbacks, topic = id && $.Topic.topics[id];
    if (!topic) {
        callbacks = $.Callbacks();
        topic = {
            publish: callbacks.fire,
            subscribe: callbacks.add,
            unsubscribe: callbacks.remove
        };
        if (id) {
            $.Topic.topics[id] = topic;
        }
    }
    return topic;
};
$.Topic.topics = {};//avoid global var by making `topics` a property of the static function `jQuery.Topic`.

$(function() {

     //A function to change the logo and fire a publisher. 
    function changeLogoSrc(src) {
        $("#logo img").attr('src', src);
        $.Topic('logoSrcChanged').publish(src); 
    }

    // A subscriber which listenes for the 'logoSrcChanged' publisher 
    // and responds by writing the src string to the required form field
    $.Topic('logoSrcChanged').subscribe(function(src) {
        $("#input_2_15").val(src);
    });
});

デモはこちら

したがって、ロゴを変更するためのコードとフォーム フィールドを更新するためのコードは、正しい専門用語を使用すると、効果的に「分離」されます。

このアプローチは単純なものとしては間違いなく誇張されていますが、多くの pub/sub が必要なより大規模な環境では役立ちます。

于 2012-04-04T23:32:40.193 に答える