如何在新创建的ajax内容中选择元素中的文本(类似于用鼠标突出显示)?

时间:2012-10-13 09:10:21

标签: javascript jquery

我正在使用https://stackoverflow.com/a/987376/784637

中的selectText功能

然而,当我在新创建的元素上发出ajax请求后立即调用此函数时:

selectText('some-newly-added-element')

我在firebug中收到以下错误

NS_ERROR_DOM_NOT_OBJECT_ERR: Parameter is not an object
[Break On This Error]   

range.selectNodeContents(text);

请注意,我可以在ajax请求之后调用此函数,就像这样

$('#container').on('click', '#some-newly-added-element', function(){
   selectText('some-newly-added-element');            
});

有没有办法在ajax请求完成后立即调用此函数?

2 个答案:

答案 0 :(得分:1)

回复:Is there a way to call this function immediately after the ajax request is done?

你的意思是在ajax success成功之后。 http://api.jquery.com/jQuery.ajax/

这应该有所帮助:Execute function after all ajax .load() requests are finished

希望这符合原因:)

<强>示例

$.ajax({
    url: this.html_url,
    cache: false,
    success: function(html){
        doSomething();
        return true;
    }
});

答案 1 :(得分:1)

使用complete回调,这将在ajax调用后触发

  $.ajax({

  complete: function(){
       selectText('some-newly-added-element');
      }

   });

ajax事件的文档:http://docs.jquery.com/Ajax_Events