Слушатель JQuery не слушает - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь установить флажок типа ввода .. при нажатии выполняется вызов AJAX.У меня настроен слушатель, но ничего не запускается ... firebug также ничего не показывает.

Код:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js{API removed}"></script>
    <script type="text/javascript">
    $(document).ready(function() {
alert('test');
if ($('#profile_visible:checked').val() !== null) {

        $.ajax({
          url: 'inc/profileVisible.php',
          success: function(data) {
            $('#resultProfileVisible').innerhtml="success";
            alert('Load was performed.');
          }
        });
}
    }
    </script>

... и в теле документа:

    <form method="post" action="profile/<?php echo $_SESSION['usern']; ?>/settings">
    <p><input type="checkbox" id="profile_visible" name="profile_visible" /> Show Profile<span id="resultProfileVisible"></span></p>
    </form>     

спасибо

Ответы [ 4 ]

1 голос
/ 28 января 2012

Единственный слушатель готов к DOM, так что он будет запускаться только один раз.Смотри ниже.

$(document).ready(function () {
    alert('test');
           // I assume you just want to see if it is checked
    if ($('#profile_visible').is(':checked')) {

        $.ajax({
            url: 'inc/profileVisible.php',
            success: function (data) {
                  // jQuery has .html(), not innerhtml
                $('#resultProfileVisible').html( "success" );
                alert('Load was performed.');
            }
        });
    }
}) // <-- was missing closing parentheses
1 голос
/ 28 января 2012

Вы не настроили прослушиватель событий. Привязывайте обработчики событий с помощью on (jQuery> 1.7) или bind (jQuery <1.7) или различных методов ярлыков jQuery (например, <code>.change или .click):

$(document).ready(function() {
    $("#profile_visible").change(function() {
        if (this.checked) {
            $.ajax({
                url: 'inc/profileVisible.php',
                success: function(data) {
                    $('#resultProfileVisible').html("success");
                    alert('Load was performed.');
                }
            });
        }
    });
});

Кроме того, используйте .html() вместо .innerHtml для установки html-содержимого элемента при использовании объекта jQuery.

Пример: http://jsfiddle.net/andrewwhitaker/8x6h8/1/

0 голосов
/ 28 января 2012

Я не вижу твоего слушателя. Пытаться

$(document).ready(function() {
    $('#profile_visible').change(function() {
        if ($(this).attr('checked')) {
            $.ajax({
                url: 'inc/profileVisible.php',
                success: function(data) {
                $('#resultProfileVisible').html("success"); // change here
                    alert('Load was performed.');
                }
            });
        }
    });
});
0 голосов
/ 28 января 2012

изменить код следующим образом

$(document).ready(function(){
 $('#profile_visible').change(function(){ // handler when the checkbox is toggled
   if($(this).attr('checked')) { // check if it is checked
        $.ajax({
          url: 'inc/profileVisible.php',
          success: function(data) {
            $('#resultProfileVisible').html("success"); // change here
            alert('Load was performed.');
          }
      });
    }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...