$('#notificationClick')。点击不工作

时间:2014-09-09 14:50:35

标签: javascript php jquery

所以我试图让这个工作在这里是jquery + php。

当我尝试触发jquery中的点击时,它甚至没有" alert()"。

PHP(更新):

$MSG_Notification_sql = mysqli_query($Connection, "SELECT * FROM notifications WHERE user_id='".$bzInfo['id']."'");

while ($MSG_Notification_row = mysqli_fetch_array($MSG_Notification_sql)){        

    $MSG_Notification_rows[] = $MSG_Notification_row;        

}

foreach ($MSG_Notification_rows as $MSG_Notification_row){                

    $bzWhen = date('d-m-Y H:m:i', strtotime($MSG_Notification_row['when']));


    echo '<form method="POST">
            <div class="notificationClick notification-messages info">
                <div class="user-profile"> 
                    <img src="assets/img/profiles/d.jpg"  alt="" data-src="assets/img/profiles/d.jpg" data-src-retina="assets/img/profiles/d2x.jpg" width="35" height="35">
                </div>
                <div class="message-wrapper">
                  <div class="heading"> '.$MSG_Notification_row['title'].'</div>
                  <div class="description"> '.$MSG_Notification_row['description'].' </div>
                  <div class="date pull-left"> '.$bzWhen.'</div>
                </div>                               
                <input name="notificationID" value="'.$MSG_Notification_row['id'].'" style="display: none" />                
                <div class="clearfix"></div>
            </div>
        </form>';

}

的Javascript(更新):

$(document).ready(function(){
    $('.notificationClick').click(function(event){                 

                alert('Ok');

        // get the form data
        // there are many ways to get this data using jQuery (you can use the class or id also)
        var formData = $('#notificationClick').serialize();

        // process the form
        $.ajax({
            type        : 'POST', // define the type of HTTP verb we want to use (POST for our form)
            url         : '../../class/notifications/msgs_del.php', // the url where we want to POST
            data        : formData, // our data object                         
            dataType    : 'json' // what type of data do we expect back from the server

        })
            // using the done promise callback
            .done(function(data) {
                // log data to the console so we can see
                console.log(data); 

                window.location = '/?page=messages&sub=inbox&bx=preview&id='+ data.notificationID +'';

            });                                                

            event.preventDefault();
    });
});
是的,有人可以帮帮我吗?我试图完成这一点,但没有:(

3 个答案:

答案 0 :(得分:2)

首先,正如其他人所说,ids需要是单一的。所以使用你已经拥有的课程。现在在里面,您需要使用您单击的当前表单,而不是所有表单。

$('.notification-messages').click(function(event){      //<-- change to class           
    var formData = $(this).closest("form").serialize();  //change to this
    ...

如果要动态加载这些,则需要使用事件委派

$(document).on("click", '.notification-messages', function(event){       
    var formData = $(this).closest("form").serialize();
    ...

答案 1 :(得分:0)

您正在使用ID,您只能将点击绑定到1个ID,而不是多个ID。

您应该使用该类来绑定.click函数。

答案 2 :(得分:0)

您可以将时间戳与您的ID相关联以使其唯一(如果您愿意,可以用_分隔)并将点击事件的选择器更改为$('[id*="notificationClick_"]')

另一方面,你可能想要使用一个类,而不是它的用途:

$(".notification-messages")