Мне нужно, чтобы эффект события mousedown/up был куплен на странице через .load.Проблема с синтаксисом .live
Я использую это, но я думаю, что я, возможно, получил это неправильно:
$("#newBtn").live('mouseup', function(){
$(this).css('box-shadow', '0px 7px 10px -5px #000');
}).mousedown(function(){
$(this).css('box-shadow', '0px 7px 10px -5px #666');
});
Вот событие загрузки:
$('#dashboard').click(function()
{
$('#box').html('');
$('#box').load('ajax/content.php #dashboard');
});
$('#calendar').click(function()
{
$('#box').html('');
$('#box').load('ajax/content.php #calendar');
});
Эти две кнопки, одна из которых загружает DIV, который содержит #newBtn.
Любая помощь будет оценена!
Я также попытался это:
$("#dashboard").on('load', function(){
$('#newBtn').mouseup(function()
{
$(this).css('box-shadow', '0px 7px 10px -5px #000');
}).mousedown(function(){
$(this).css('box-shadow', '0px 7px 10px -5px #666');
});
});
Мое мышление было то, что при загрузке нового DIV в моей страницы мыши вниз событие будет вооруженным. Но не тут-то :(
Попробуйте мой обновленный ответ. Я изменил '#dashboard' на '#box', как кажется, что '# box' не является дочерним элементом' # dashboard', о котором я думал раньше. – Engineer
Не используйте 'live', он устарел. Для получения дополнительных пояснений, почему ваш код работает, см. Docs-> http://api.jquery.com/live/, особенно '.live (события, данные, обработчик (eventObject))' part. Согласно документам, вы можете упростить свой код до '$ ('# newBtn'). Live ('mouseup', function() { // ... }). Live ('mousedown', function() { // ... }); ', потому что вы передаете данные '#newBtn' обработчику и эти данные не используются в обработчике/s. – Engineer