0

次のシナリオ:

ajax リターンで、ドキュメント内のいくつかのリンクを変更したいと思います。それらのいくつかはハードコードされ、その他は動的に生成されます。

function( data ) {
   $('a.imageselect').each(function() {
      var imgValue = $(this).attr('href');
      $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data.dbid));
   });
}

ハードコードされた要素では想定どおりに機能しますが、それらでは機能しません。

$("#chooseimg").after('<a href="'+imgUrl+'" class="imageselect">foo</a>");

「on」が役立つ可能性があることは知っていますが、この場合の使用方法はわかりません。

4

2 に答える 2

0

あなたのコードは正しいです。古いバージョンの jQuery を使用している可能性があります。このスクリプトでコードをテストしましたが、すべて正常に動作します。

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
    $('#button').on('click', function() {
        var imgUrl = 'publish_img';
        $("#chooseimg").after('<a href="'+imgUrl+'" class="imageselect">foo</a>');
    });

    $('#button2').on('click', function() {
        change('1');
    });
});

function change( data ) {
   $('a.imageselect').each(function() {
      var imgValue = $(this).attr('href');
      $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data));
   });
}
</script>

<input type="button" id="button" name="add" value="Add link!" /><br />
<input type="button" id="button2" name="change" value="Change" />

<div id="chooseimg">

</div>
</body>
</html>
于 2013-03-25T17:12:39.607 に答える
0
$(document).on("click", ".button-delete", function() {
    console.log("inside");
});

.on の使用法は上記ですが、この場合は関数を作成する必要があると思います

function my_func() {
    $('a.imageselect').each(function() {
     var imgValue = $(this).attr('href');
     $(this).attr('href', imgValue.replace('publish_img', 'edit_img/'+data.dbid));
    });
}

動的データを追加した後にこれを呼び出します。

$("#chooseimg"]).after('<a href="'+imgUrl+'" class="imageselect">foo</a>');
my_func();

このような。

于 2013-03-06T06:14:38.553 に答える