首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JQuery侦听程序未侦听

JQuery侦听程序未侦听
EN

Stack Overflow用户
提问于 2012-01-29 01:41:26
回答 4查看 445关注 0票数 0

我正在尝试单击输入类型复选框。单击时,将执行AJAX调用。我设置了一个监听器,但是什么都没有触发...firebug也不显示任何内容。

代码:

代码语言:javascript
代码运行次数:0
运行
复制
    <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>

文档正文中的...and:

代码语言:javascript
代码运行次数:0
运行
复制
    <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>     

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-29 01:45:56

您没有设置事件侦听器。使用on (jQuery > 1.7)或bind (jQuery < 1.7)或jQuery的各种快捷方法(如.change.click)绑定事件处理程序:

代码语言:javascript
代码运行次数:0
运行
复制
$(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.');
                }
            });
        }
    });
});

此外,在使用jQuery对象时,使用.html()而不是.innerHtml来设置元素的html内容。

示例: http://jsfiddle.net/andrewwhitaker/8x6h8/1/

票数 1
EN

Stack Overflow用户

发布于 2012-01-29 01:46:05

惟一的监听器是准备好DOM的,所以它只会运行一次。

您的代码有一些问题。见下文。

代码语言:javascript
代码运行次数:0
运行
复制
$(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
EN

Stack Overflow用户

发布于 2012-01-29 01:46:07

如下所示更改代码

代码语言:javascript
代码运行次数:0
运行
复制
$(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.');
          }
      });
    }
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9047413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档