Функция jQuery .load () вызывается только один раз - PullRequest
1 голос
/ 23 марта 2012

##### решено ##### У меня было обновление javaScript setInterval ("...", 1000); в исходном коде, который вызвал ошибку. Большое спасибо за вашу помощь!

HTML

<div class="stackwrapper" id="user1"></div>
<div class="stackwrapper" id="user2"></div>
<div class="userdrawings"></div>

JavaScript

$('.stackwrapper').click(function(e){
var id=$(this).attr('id');
$('.userdrawings').load('loadSession.php?user='+id).fadeIn("slow");
});

Каким-то образом это работает только сразу, только при первом щелчке на упаковщике стека, когда я щелкаю по второму, функция снова не запускается.

Ответы [ 5 ]

1 голос
/ 23 марта 2012

Хорошо, теперь я понял, это потому, что вы делаете вызов ajax. Вот ссылка , которая отвечает на ваш вопрос.

0 голосов
/ 23 марта 2012

Странно, а на моем компьютере хорошо работает. Он меняется каждый раз, когда я нажимаю. это мой код

HTML

<div class="stackwapper" id="user1">user1</div>
<div class="stackwapper" id="user2">user2</div>
<div class="userdrawings"></div>

JS

$(document).ready(function(){
$(".stackwapper").click(function(e) {
       var id = $(this).attr('id');
       $(".userdrawings").load("user_session.php?user="+id).fadeIn("slow");
    });
});

user_session.php

$user=$_GET["user"];
echo "hello " . $user;
0 голосов
/ 23 марта 2012

Вы можете попробовать поместить его на уровне документа:

$(document).on('click', '.stackwrapper', function(e) {
    var id = $(this).attr('id');
    $('.userdrawings').load('loadSession.php?user=' + id).fadeIn("slow");
});
0 голосов
/ 23 марта 2012

Невозможно воспроизвести проблему в этом автономном примере.

<?php
if ( isset($_GET['user']) ) {
    echo '<span>user=', htmlspecialchars($_GET['user']), '</span>';
    die;
}
?>
<html>
    <head>
        <title>...</title>
        <style type="text/css">
            .stackwrapper { width:100px; height: 100px; margin: 5px;  background-color: red }
        </style>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('.stackwrapper').click(function(e) {
                    var id=$(this).attr('id');
                    $('.userdrawings').load('?user='+id).fadeIn("slow");
                });
            });
        </script>
    </head>
    <body>
        <div class="stackwrapper" id="user1"></div>
        <div class="stackwrapper" id="user2"></div>
        <div class="userdrawings"></div>
    </body>
</html>

Возможно, вы захотите использовать отладчик javascript, например, включенный в firebug , и проверять ошибки.1006 *

0 голосов
/ 23 марта 2012

попробуй положить его внутрь

$(document).ready(function(){
//place the above code here.
});
...