2012-06-10 4 views
0

Мне нужно, чтобы эффект события 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 в моей страницы мыши вниз событие будет вооруженным. Но не тут-то :(

ответ

0

Ok,

Я ценю помощь, но на методе не работает для меня, я, наконец, получил его, как это (используя синтаксис инженера с живой метод):.

$('#newBtn').live('mouseup','#newBtn',function() { 
     $(this).css('box-shadow', '0px 7px 10px -5px #000'); 
    }).live('mousedown','#newBtn',function() { 
     $(this).css('box-shadow', '0px 7px 10px -5px #666'); 
    }); 

Единственное, что я не знаю, почему это сработало, поэтому, если кто-нибудь сможет объяснить это мне :), было бы здорово!

+0

Попробуйте мой обновленный ответ. Я изменил '#dashboard' на '#box', как кажется, что '# box' не является дочерним элементом' # dashboard', о котором я думал раньше. – Engineer

+0

Не используйте 'live', он устарел. Для получения дополнительных пояснений, почему ваш код работает, см. Docs-> http://api.jquery.com/live/, особенно '.live (события, данные, обработчик (eventObject))' part. Согласно документам, вы можете упростить свой код до '$ ('# newBtn'). Live ('mouseup', function() { // ... }). Live ('mousedown', function() { // ... }); ', потому что вы передаете данные '#newBtn' обработчику и эти данные не используются в обработчике/s. – Engineer