0

我有一个“窗口添加”按钮,单击它后,应该将一个新的 div 添加到 dom 中。新 div 上的滚动事件不想附加到它并在滚动时显示警报。我知道由于它是新添加的,我们需要集成 on 事件处理程序,但这仍然对我不起作用。这是我尝试过的:

<div id="window-add">Window Add</div>

$('#window-add').click(function(){
    $(this).after('<div id="scroll-window">Scroll Me.</div>');
});

//using on doesn't work below either
$('#scroll-window').scroll(function(){
    alert('scrolling');
});

关于如何让它发挥作用的任何想法?这是小提琴

4

2 回答 2

3
  1. 每页的ID必须是唯一的。(您要添加多个 ID)

  2. 您只是将不可滚动的元素添加到body
    比滚动实际的body元素,你不能指望$('#scroll-window')调用一个scroll事件。

使用 jQuery 1.6.4 (Lilke in your fiddle) 你必须使用以下方法做一些事情.bind()

LIVE DEMO

var scrollWindow = $('<div>', {
    id:"scroll-window",
    html: "Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me.Scroll Me."
});


$('#window-add').click(function(){
    $(this).after(scrollWindow);
});

// IF YOU USE jQ (1.7+) you can use .on() method instead of .bind()
scrollWindow.bind('scroll', function(){
    alert('scrolling');
});

jQuery <1.7 使用 .bind()
jQuery 1.7+ 使用 .on()

于 2013-04-29T23:56:18.207 回答
0
$('#window-add').click(function () {
  $(this).after('<div id="scroll-window">Scroll Me.</div>');
  $(window, this).scroll(function () {
    alert('scrolling');
  });
});

这对你有用吗?

http://jsfiddle.net/rJFCz/3/

于 2013-04-29T23:55:59.400 回答