mail.js
var readMail = function(){ $(".listmail").bind("click", function(){ $.ajax({    url: "readmail.php",
   type: "GET", data: { "id": 1 },

success: function(data) {

                                              alert("ok");  },
 error: function() {
alert("error");
  }
}) })

};
var init = function() {

readMail(); }; init();mail.html代码(mail.js在mail.html页面加载)
<tr class="listmail"></tr>
<tr class="listmail"></tr>
<tr class="listmail"></tr>在html页面有多封邮件,定义统一的类名 .listmail;我先实现,单击任何一份邮件列表中的邮件,都填出ok对话框。现在的问题是,我单击tr,不能执行js中的代码。但是,如果在firefox中进行断点调试,有会正常显示。不知道,有没有遇到这种情况的高手啊。如果有,请不吝指教啊。谢谢。

解决方案 »

  1.   

    $(".listmail").each(function(){
      this.bind("click", function(){
      ....
    });
    });是不是应该这样...
      

  2.   

    <tr>
          <td>
                 
          </td>
    </tr>
    没写td吗?
      

  3.   

    把click事件那段代码放到你页面的最下面,就可以调用得到了
      

  4.   


    可能是你的ajax方法还没有执行完,你有点了别的tr了
    $(".listmail").bind("click", function(){
        alert('okkkk');
        $.ajax({...});
    });
    这样有没有运行
      

  5.   

    <html>
    <head>
    <script type="text/javascript" language="javascript" src="/Script/jquery-1.4.2.js">
    </script>
    <script language="javascript" type="text/javascript" >
    $(document).ready(function()
    { $("tr").click(function()
    {
       init();

    })
       var readMail = function(){        $(".listmail").bind("click", function(){            $.ajax({               url: "readmail.php",
                   type: "GET",                data: {                    "id": 1                },
                    
                    success: function(data) {
                        
                                                  alert("ok");                 },
                     error: function() {
                            alert("error");
                      }
                })        })
        
        };
        var init = function() {
            
            readMail();    };    
    });
    </script>
    </head>
    <body>
    <table>
    <tr class="listmail"><td>aa</td></tr>
    <tr class="listmail"><td>bb</td></tr>
    <tr class="listmail"><td>cc</td></tr>
    </table></body>
    </html>
    readmail.php<?phpecho "funfun";
    ?>
      

  6.   

    在mail.html上调用init()方法
    这么写$(function(){init()});
      

  7.   

    页面中引入main.js文件
    $(document).ready(function(){
        init();
    });
    或者
    $(document).ready(function(){
        $(".listmail").each(function(){
            var liNode = $(this);
            liNode.click(function(){
                //doSomthing();
            });
        });
    });
      

  8.   

    还有就是检查你的readmail.php是否存在错误,再就是检查返回值的类型是否与前台相符