Вы не можете "выгрузить" JavaScript.Как только он загружен, он загружен.Там нет отмены.
Однако вы можете отсоединить обработчики событий.См .: http://api.jquery.com/unbind/
live()
- это особый случай для unbind()
.Живые обработчики событий присоединяются к document
, а не к элементу, поэтому вы должны удалить обработчик следующим образом:
$(document).unbind('click');
Однако это, вероятно, удалит больше обработчиков, чем только тот, о котором идет речьможет выполнять одно из двух действий: 1) назвать функцию-обработчик или 2) создать пространство имен.
функция обработчика имен
function myClickHandler(){
var pl = $(this).attr('rel');
$.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
$('#container').load(""+ siteAddress +"load/"+ pl +"/");
});
}
$("#button").live("click", myClickHandler);
// And later ...
$(document).unbind('click', myClickHandler);
пространство имен
$("#button").live("click.myNamespace", function(){
var pl = $(this).attr('rel');
$.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
$('#container').load(""+ siteAddress +"load/"+ pl +"/");
});
});
// And later...
$(document).unbind('click.myNamespace');
ОБНОВЛЕНИЕ:
Как @RTPMatt упоминает ниже, die()
на самом деле более уместно.Описанный выше метод будет работать, но die()
проще в использовании.Однако, с die()
вы должны точно подобрать селектор к тому, который использовался при вызове live()
, иначе результаты могут быть непредсказуемыми:
$("#button").live("click", function(){
var pl = $(this).attr('rel');
$.getScript('' + siteAddress + 'min/?js=fjs'+ pl +'', function() {
$('#container').load(""+ siteAddress +"load/"+ pl +"/");
});
});
// And later ...
$('#button').die('click');