0

我不确定出了什么问题,但每次我的点击事件都不会触发。淡入淡出功能有问题吗?我尝试更改.click.live并且.on出现了同样的问题。

这是我的代码:

$('#form').submit(function (ev) {
     ev.preventDefault();                
     $('#wrapper').html(html).scrollTop(0);              
     $('#base').fadeIn('slow', function () { 
          document.onkeydown = docOnKeydown; 
     }).click(function () {
          alert('Click Fired');
     });
     return false;
});
4

2 回答 2

1

如果你想触发点击你应该使用“触发”功能 - http://api.jquery.com/trigger/

$('#base').fadeIn('slow', function () { document.onkeydown = docOnKeydown; })
            .click(function () {
              alert('Click Fired');
            });
$('#base').trigger('click');
于 2013-01-14T22:03:36.153 回答
0

如果您希望简单地将事件处理程序添加到相关对象:

$('#base').click(function () {
   alert('Click Fired');
}).fadeIn('slow', function () { document.onkeydown = docOnKeydown; });

淡入淡出后触发点击事件?

$('#base').fadeIn('slow', function () {
    document.onkeydown = docOnKeydown; 
    $(this).trigger('click');
});

触发点击 I(可能在淡入淡出时)

$('#base').fadeIn('slow', function () {
    document.onkeydown = docOnKeydown; 
 }).trigger('click');

编辑:添加其余部分时的处理程序

$(document).on('click','#base',function () {
  alert('Click Fired');
});
$('#form').submit(function (ev) {
  ev.preventDefault();
  $('#wrapper').html(html).scrollTop(0);
  $('#base').fadeIn('slow', function () {
    document.onkeydown = docOnKeydown;
  });
  return false;
});

更好:如果基础有容器,则用于处理程序。出于性能原因,将其标记为比文档更“本地”。

$('#basecontainer').on('click','#base',function () {
  alert('Click Fired');
});

基于评论编辑:“它已经存在”这也应该在 DOM 上工作并且更简单:

$('#base').click(function () {
  alert('Click Fired');
});
$('#form').submit(function (ev) {
  ev.preventDefault();
  $('#wrapper').html(html).scrollTop(0);
  $('#base').fadeIn('slow', function () {
    document.onkeydown = docOnKeydown;
  });
  return false;
});
于 2013-01-14T22:13:37.780 回答