Загрузка URL только один раз при клике - PullRequest
0 голосов
/ 25 августа 2011

Я хочу иметь возможность загружать URL только один раз после нажатия кнопки.У меня есть это:

$("#button").click(function () { 
      $("#frame").attr("src", "http://www.google.com/");
});

К сожалению, это загружает iframe каждый раз, когда я нажимаю кнопку.Это полный код: JS Bin

Ответы [ 3 ]

5 голосов
/ 25 августа 2011

замените .click() на .one('click', function() {

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

Если вы хотите «временно» отключить кнопку во время загрузки <iframe>, сделайте это следующим образом:

var myClickHandler = function myClickHandler() {
    $(this).unbind( myClickHandler );

    $('#frame').attr('src', 'http://www.google.com').load(function() {
        $('#button').click( myClickHandler );
    });
};

$('#button').click( myClickHandler );
1 голос
/ 25 августа 2011

отменить привязку события как

$("#button").click(function (e) { 
      alert("good bye my friend");
    $(this).unbind(e.eventType);
});

http://jsfiddle.net/EVhJV/

1 голос
/ 25 августа 2011

Вы можете использовать найденный метод jQuery .one() здесь .Например:

$("#button").one('click', function () { 
    $("#frame").attr("src", "http://www.google.com/");
});

Надеюсь, это поможет.

...