1
4

3 回答 3

2
$('#leftButton').click(function(e){
        console.log('leftButton clicked ' + this.id);
        click_e.preventDefault();
    });

应该是 e.preventDefault();

于 2011-11-07T19:09:39.727 回答
0

在您尝试将事件附加到它之前,浏览器是否还没有完成将您的 HTML 添加到 DOM 中?

即,在这两行之间?

container.innerHTML = temp_innerHTML;

var $leftButton = $('#leftButton');

在这种情况下,也许你想用 .live() 附加事件,http: //api.jquery.com/live/

于 2011-11-07T19:11:47.320 回答
0

我个人更喜欢以这种方式添加我的事件处理程序:

function addMenuNavigation(container) {
    var container = $(container).empty();
    var titleBar = $('<div id="titleBar/>');
    var leftButton = $('<a href="#">Image here</a>').mousedown(leftButtonMousedown).mouseup(leftButtonMouseup).click(leftButtonClick).appendTo(titleBar);
    titleBar.appendTo(container);
}

function leftButtonMouseDown(e) { //mouse down handler
}
function leftButtonMouseUp(e) { //mouse up handler
}
function leftButtonClick(e) {
    e.preventDefault();
    // handle the click here
}
于 2011-11-07T19:50:39.323 回答