【问题标题】:jquery code work when load external page into divjquery代码在将外部页面加载到div时工作
【发布时间】:2012-04-07 16:35:24
【问题描述】:

我为refresh dynamic php div using jquery 找到了这个问题/答案。 AlexTJ. 回答了这个问题。两次方法对我有用!但是当我将外部页面加载到我的 div 我的 jquery 库和其他 jquery 代码对我不起作用时我遇到了大问题:(。我需要解决这个问题。

示例加载 1:

    $(document).ready(function () {
        $('.click').on('click', function (e) {
            e.preventDefault();
            $('.messagelist').html('Please wait...');
            $.ajax({
                type : 'GET',
                url : 'messages.php',
                dataType : 'html',
                success : function (response) {
                    $('.messagelist').html(response);    
                }
            });
        });
    });
 <a class="click" href="#"> Link TO refresh Div </a>
 <div class="messagelist">
 <div class="togglespan"><span>+</span></div>
 <div class="togglediv"></div>
 </div>

加载 2:

    <script type="text/javascript">
    $(function(){
        $('.click').on('click', function(e){
            e.preventDefault();
            $('.messagelist').text('Please wait...');
            $('.messagelist').load('list.php');
        });
    });
    </script>
    <a class="click" href="#"> Link TO refresh Div </a>
    <div class="messagelist">
    <div class="togglespan"><span>+</span></div>
    <div class="togglediv"></div>
    </div>

例如,现在我的页面中有用于切换 div 的代码。这不起作用。真的在我的外部页面中,我需要切换 div。如何修复工作 jquery 库的加载外部页面和所有外部页面的代码?有一个基本的方法可以做到这一点。谢谢

$(".togglespan").click(function () {
    if ($(this).next(".togglediv").is(":hidden")) {
        $(this).next(".togglediv").slideDown("slow");
        $(this).children('span').html('+');
    } else {
        $(this).next(".togglediv").slideUp("slow");
        $(this).children('span').html('-');
    }
}); 

【问题讨论】:

  • 我不太明白你想要什么。 .togglespan 是从第二个 PHP 文件加载的吗?
  • 是的!在两个文件(索引/第一个文件和外部页面)中。此问题适用于其他 jquery 代码。其实Jquery library And All Plugin And Code并没有加入到第二页(外部页面)

标签: jquery


【解决方案1】:

您需要事件委托。试试这个而不是你的切换代码:

$(".messagelist").on('click', '.togglespan', function (e){
    if ($(this).next(".togglediv").is(":hidden")) {
        $(this).next(".togglediv").slideDown("slow");
        $(this).children('span').html('+');
    } else {
        $(this).next(".togglediv").slideUp("slow");
        $(this).children('span').html('-');
    }
}); 

【讨论】:

  • 不行!我对 jquery 切换代码的​​问题?或加载外部页面的代码?我的其他 jquery 代码也有这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多