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>");

我知道也许“开”可以帮助我——但我不知道在这种情况下如何使用。

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 回答