0

ダイビングでリンクの1つをクリックすると、.phpファイルからサブリンクが読み込まれます。これは機能しますが、[ホーム]リンクをクリックすると、元のリンクに戻ります。これも機能しますが、これらのリンクの1つを再度クリックすると、サブリンクが.phpファイルからロードされなくなります。

htmlページ:

<script>
    $(document).ready(function(){
        $(".link").click(function(){
            var value = $(this).attr("href");
            var linkName = {'href':value};
            alert(value);

            $.ajax({
                type: "POST",
                url: 'sublinks.php',
                data :linkName,
                success: function(response){
                    $('#target').html(response);
                }
            });
        }) ;
    })
</script>
.
.
.
<ul>
    <li><a href="#home" class="link">Home</a></li>
</ul>

<ul id="target">
    <li><a href="#book" class="link">books</a></li>
    <li><a href="#auth" class="link">authors</a></li>
</ul>

sublinks.phpファイル

<html>
<body>
    <?php
        $name = $_POST['href'];
        $books = array('web','coocking','coding');
        $authers = array(111,222,333);

        if ($name == "#books") {
            foreach ($books as $v)
                echo "<li><a href=\"#eroom\">".$v."</li></a>";
        }
        else if ($name == "#authors") {
            foreach ($authers as $v)
                echo "<li><a href=\"#sroom\">".$v."</li></a>";
        }
        else if ($name == "#home") {
            echo "<li><a  href=\"#book\" class=\"link\">books</li></a>";
            echo "<li><a  href=\"#auth\" class=\"link\">authers</li></a>";
        }
    ?>
</body>
</html>
4

1 に答える 1

1

試す:

$('#target').on( 'click', 'a.link', function () { 
  ..your code here
});

編集:私は次の変更を意味しました:

$(".link").click(function(){

$('#target').on( 'click', 'a.link', function () { 

追加:あなたもすることができます

$(document).on('click', 'a.link', function() {
    .... rest of your code
});

編集:このコードは委任を追加するため、a.link要素が追加される#targetと、クリックハンドラーもバインドされます。

于 2013-01-28T11:15:10.097 に答える