2

我有一个 JQuery Mobile 页面,其中的内容是一个列表,用户可以在其中点击以选择(突出显示)元素。选择所需数量的列表元素后,可以通过点击页脚中的删除按钮将其删除。该页面在我的桌面上运行良好,但在移动环境(iPhone 和 iPad)中,按下删除按钮也会触发按钮下方列表元素的点击事件。

这张图片显示了我的页面通常的外观。如果用户点击删除按钮,选定的元素将被删除,但删除按钮下方的元素将突出显示。

图片

为什么会发生这种情况,我能做些什么来解决它?

编辑(一些代码):这是事件映射器:

$(document).delegate("#delete-button", "tap", deleteButtonTapped);

这是功能:

var deleteButtonTapped = function(event, data) {
    event.stopPropagation();
    var possessedNotes = [];

    $('.ui-btn-up-e').each(function(){

        $(this).slideUp();
        var id = $(this).attr("id").split(" "); //id is loanId + " " + docId
        possessedNotes.push(notesList[[id[1], id[2]]]);
    });

//  console.log(possessedNotes);

    $.post("srv/move_notes_into_possession.php", { possessedNotes: possessedNotes }, function(response) {
        console.log(response);
    }, "json");

    $("#footer").slideUp();
};
4

1 回答 1

0

DOM 元素上的事件传播或“冒泡”。您需要event.stopPropagation()在事件处理程序中使用 jQuery 的函数来阻止事件传播到父元素。

http://api.jquery.com/event.stopPropagation/

于 2013-07-12T17:20:21.493 回答