Mouseup не запускает полосу прокрутки для динамически добавляемых элементов (кроме Firefox):
CSS:
#dBox {
height: 100px;
width: 230px;
overflow - y: auto;
}
HTML:
<input type="text" id="s">
JQuery:
$(function() {
$('#s').focus(function() {
var $dbox = $('<ul id="dBox"></ul>');
for (i = 0; i < 10; i++) $dbox.append('<li>' + i + '</li>');
$(this).after($dbox);
$dbox.bind("mouseup", function() {
alert('in: ');
//console.log ('in: ');
});
});
});
// OR LIKE THIS
$('#s').focus(function() {
var $dbox = $('<ul id="dBox"></ul>');
for (i = 0; i < 10; i++) $dbox.append('<li>' + i + '</li>');
$(this).after($dbox);
});
$('#dBox').live("mouseup", function() {
alert('in: ');
//console.log ('in: ');
});
Если щелкнуть в любом месте, ul
сработает, НО не на полосе прокрутки. Такая же проблема существует во всех браузерах, кроме Firefox.
Если вы замените «mouseup» на «mousedown», это также будет срабатывать на полосе прокрутки во всех браузерах.
После еще нескольких тестов кажется, что это не имеет значения, добавлен ли он динамически или нет, mouseup просто не распознает полосу прокрутки как часть ul (кроме FF).
И та же проблема, если вы замените ul на div и li на p. <div id="dBox" class="" ><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p><p>7</p><p>8</p><p>9</p></div>
$('#dBox').mouseup(function () {alert ('in: ');});