JQuery: отменить привязку загруженной функции - PullRequest
2 голосов
/ 13 сентября 2010

У меня есть функция, которая изменяет размер фона изображения при загрузке страницы,

$(document).ready(function(){
loadBackground();
});

, и я хочу «выгрузить» или «удалить» эту загруженную функцию, когда я нажимаю на кнопку, чтобыЯ могу загрузить эту функцию заново вместо загрузки в верхней части страницы,

$('.get-image').click(function(){
        $(window).unbind("resize",loadBackground);
        loadBackground();
 return false;
 });

, но я не могу заставить ее работать!Любые идеи, пожалуйста?

спасибо, Lau

1 Ответ

0 голосов
/ 13 сентября 2010

Основываясь на ваших комментариях, я не думаю, что вам вообще нужно отменять привязку:

Сначала вы хотите загрузить фон при загрузке страницы, а затем вы хотите загрузить фон при щелчкеслучается.

То, что происходит с фоном при изменении размера изображения, должно быть другой отдельной функцией, связанной с $(window).resize() ... так что все это будет выглядеть так:1008 * означает то же самое, что и $(document).ready(function() { ... }), просто писать быстрее:

$(function() { 
      // Define load BG
    function loadBackground() {
        /// ...
    }

      // Define what happens to the BG image on resize
      // this doesn't have to change. It should refer
      // to the generic `background-image`
    $(window).resize(function() { 
        // ...
    });

      // load BG when page is ready:
    loadBackground();

      // load another BG if there's a click:
      // This will effectively cancel the previous load bg
    $('.get-image').click(function() { 
        loadBackground();
        return false;
    });    
});

// I'm assuming you're somehow changing which BG image is loaded
// something like loadBackground(image)... and you could initially 
// load a default image, and then, if there's a click, you could
// determine what image should be based on what was clicked.
...