【问题标题】:jQuery not working inside ajax loaded div withen same pagejQuery在同一页面内的ajax加载div中不起作用
【发布时间】:2011-10-23 14:04:02
【问题描述】:

我已经在这之后几天没有运气并在这里尝试了问题/答案,但无法弄清楚如何解决我的问题(尝试在代码中使用 .click 更改一个 .live 但没有运气)。 这是我在 jquery.ajaxy.js 中所做/更改的内容(代码中可能还有其他地方需要更改,但是当我尝试时,ajaxy 无法正常工作,所以我在这里做错了。这个代码甚至可能不是解决方案的一部分,因为它在 ajax 加载的 div 中的 jQuery 不起作用)

$.fn.preventDefaultOnClick = $.fn.preventDefaultOnClick || function(){

        //original
        //return $(this).click(function(event){

        return $(this).live('click', function(event){
           event.preventDefault();
           return false;
    });
};

我的测试链接http://eddiepotros.com/test/

  • 点击 About,关键字 DESIGNERONE STOP SHOP 应该显示 jquery 样式的工具提示,但除非您转到页面本身http://eddiepotros.com/test/pages/about.html 然后它可以工作(在那里也加载jquery,但即使我删除它,仍然无法工作)

  • 点击Portfolio,同样的问题。 jQuery 代码在该页面/div 上不起作用,除非您直接访问它 eddiepotros.com/test/pages/portfolio.php

有什么建议吗?? 为了清楚起见,我不知道我发布的代码是否可以解决我的问题。我只是在猜测,但它似乎没有按照这里的前 2 cmets 做任何事情。 我的问题是无法从加载 ajax 的 div 调用 jQuery

我已经尝试了很长时间,但仍然没有运气!

【问题讨论】:

    标签: jquery ajax html load


    【解决方案1】:

    return this.live('click', function(event){

    JQuery 对象是否隐含?

    【讨论】:

    • 我做了,但没有任何改变
    【解决方案2】:

    试试这个:

    $.fn.preventDefaultOnClick = function(){
    
       return $(this).live('click', function(e){
               e.preventDefault();
              });
    };
    

    【讨论】:

      【解决方案3】:

      您是否尝试过将 JavaScript 放在 about.html 上

      $('#about a[href][title]').qtip({
        content: {
           text: true // Use each elements title attribute
        },
        hide: { /*when: 'inactive',*/ delay: 800, effect: 'fade' },
        show: { effect: 'grow' },
        style: 'cream' 
      });
      

      在 HTML 的底部,而不是在 document.Ready 部分。

      【讨论】:

      • 这也不起作用。当您自己运行代码localhost/eddiepotros/pages/about.html 时,它就像在 div 中购买它一样工作,它仍然无法正常工作
      • Opps 对不起,我的意思是 eddiepotros.com/test/pages/about.html 工具提示在那里工作。但是,当 div 中的 ajaxy 加载页面时,该 div 中的 jquery 确实可以工作。其他 javascript 可以。
      • 如果您找到了解决方案,请发帖
      【解决方案4】:

      还原您之前所做的任何更改以使工具提示生效。

      在 about.html 删除文档。准备就绪。

      只需将代码放在 about.html 页面的末尾即可。

      <script>
      
      // By suppling no content attribute, the library uses each elements title attribute by default
         $('#about a[href][title]').qtip({
            content: {
               text: true // Use each elements title attribute
            },
            hide: { /*when: 'inactive',*/ delay: 800, effect: 'fade' },
            show: { effect: 'grow' },
            style: 'cream' // cream, dark, green, light, red, blue
         });
      
          //effects such as fade, slide, grow   
         // NOTE: You can even omit all options and simply replace the regular title tooltips like so:
         // $('#content a[href]').qtip();
      </script>
      

      它应该工作。让我知道它是否没有

      【讨论】:

      • 我试过这个,只是缩小了脚本(删除了 cmets 和其他东西)并将其放在底部,但 它仍然不起作用。我认为问题不在于该页面本身(也许脚本的相对链接是一个问题),但主要问题是加载 ajax div 的索引页面。这就是导致 jQuery 不能在加载的页面上工作的原因。我只是不知道如何解决它。我已经尝试了所有我知道的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多