0

jquery を使用して動的php divを更新するためのこの質問/回答を見つけました。アレックスTJ。この質問への回答。2回の方法がうまくいきました!しかし、外部ページを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('-');
    }
}); 
4

1 に答える 1

0

イベント委任が必要です。トグルコードの代わりにこれを試してください:

$(".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('-');
    }
}); 
于 2012-04-07T16:53:49.540 に答える