对于通过ajax注入的html,可以重新运行document.ready()jquerys吗? 以下是我的案例: ... $(函数(){ $('.do-tip').qtip({ 内容:“这是活动悬停元素的提示”, 显示:“鼠标悬停”, 隐藏:“鼠标出”, }) }); 有什么想法吗?

对于通过ajax注入的html,可以重新运行document.ready()jquerys吗? 以下是我的案例: ... $(函数(){ $('.do-tip').qtip({ 内容:“这是活动悬停元素的提示”, 显示:“鼠标悬停”, 隐藏:“鼠标出”, }) }); 有什么想法吗?,jquery,ajax,document-ready,Jquery,Ajax,Document Ready,虽然还不清楚您想做什么,但我将尝试我的MagicGuess工具,并为您提供答案 所以,你需要 a) 在文档加载时执行一些功能;此功能对页面上的所有.do tip元素都有作用 b) 在通过AJAX加载某些内容后执行相同的功能,但现在需要使用另一组元素 这是真的吗?如果是这样,我会这样做: here is my case: <html> <body> <head> ... <script> $(functio

虽然还不清楚您想做什么,但我将尝试我的MagicGuess工具,并为您提供答案

所以,你需要

a) 在文档加载时执行一些功能;此功能对页面上的所有
.do tip
元素都有作用

b) 在通过AJAX加载某些内容后执行相同的功能,但现在需要使用另一组元素

这是真的吗?如果是这样,我会这样做:

here is my case:

    <html>
    <body>
    <head>
    ...
    <script>
 $(function(){
        $('.do-tip').qtip({
            content: 'This is a tip of active hovered element',
            show: 'mouseover',
            hide: 'mouseout',
  })
 });
    </script>
    </head>
    <body>
    <a href="http://www.google.com" class="do-tip">google</a>

    <input type="button" value="load div by ajax" />
    <div> <!-- this div loaded by ajax -->
    <div>
    <a href="http://www.yahoo.com" class="do-tip">yahoo</a> <!-- HOW TO HERE, run the existing script only for this part, JQUERY UNCLE must have a solution-->
    </body>
    </html>

any ideas?
在通过AJAX加载HTML后,使用另一个选择器调用
doeverythineed
。如果您使用
$.ajax()
函数,那么您只需执行以下操作即可

function doEverythingINeed(selector) {
    $(selector).qtip({
        content: 'This is a tip of active hovered element',
        show: 'mouseover',
        hide: 'mouseout',
    })

}

$(function() {
    doEverythingINeed('.do-tip');
});

希望有帮助

为了防止它对其他人有帮助,我有一个非常类似的用例,并使用jQuery的.live()事件绑定器解决了它-比我试图通过重新处理所有$('document').ready()事件来设计的解决方案要简单得多

用例:一个有很多链接(HTMLA标签)的页面。在$('document').ready()上,我将相关链接的.click()事件绑定到一个调用some.ajax()的函数,该函数检索了更多相同类型的链接,并将它们的HTML注入页面。问题是,新链接没有绑定。单击新链接并没有像应该的那样触发.ajax()代码

在注入HTML后,我花了很多时间试图重新触发ready事件,然后意识到使用.live('click')而不是.click()绑定事件将在没有额外代码的情况下得到完全相同的结果


顺便说一下,其他人在其他地方对原始问题给出了一个非常好的解决方案-请参见问题

您可以在ready函数中内置一个模块执行控制器,并在注入HTML后重新运行函数。大概是这样的:


不,从你投入的意义上说。非人的猜测。不仅猜测是对的。我在qtip2上遇到了完全相同的问题,而你的解决方案成功了。
$.ajax({
    //parameters
    success: function() {
        //some other actions if needed
        doEverythingINeed('your selector');
        //more actions if needed
    }
});