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', она будет срабатывать и на полосе прокрутки во всех браузерах.
После нескольких дополнительных тестов кажется, что не имеет значения, добавлено ли «ul» динамически или нет, но 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: ');});