2012-04-14 3 views
-2

При нажатии кнопки «загрузить фон» отображается тип ввода = «файл». Я сделал это с помощью jquery .click() и .show() и .hide(), и он работает. Но я хочу изменить тип ввода = «файл» обратно на кнопку, когда он щелкнут где-то еще на странице. Как я могу это сделать?Изменение событий show hide

HTML:

Upload<input type="button" id="upload" /> 
<input type="file" id="file" /> 

CSS:

#file{display:none;} 

JQuery:

$('#upload').click(function(){ 
$('#upload').hide(); 
$('#file').show(); 
}); 

Как я могу изменить #FILE обратно #upload, когда указатель мыши нажата где-то в страница.

EDIT: (это правильно?)

$("#upload").click(function(){ 
    e.stopPropagation(); 
    return false; 
    $("#file").show('slow'); 
    $("#upload").hide(); 
}); 

$(document).click(function(){ 
$('#uploadbg').show('slow'); 
$('#uploadform').hide(); 
}); 

До сих пор не работает. Может ли кто-нибудь мне помочь?

Спасибо!

+0

, пожалуйста, сделайте свой вопрос понятным или сделайте демонстрацию того, что вам нужно здесь http://jsfiddle.net/ – coder

+0

@coder Я обновил вопрос. пожалуйста, проверьте его – rnk

+1

Вы не должны возвращаться перед выполнением кода в функции; return должен быть последним оператором в функции, иначе код никогда не будет выполнен. –

ответ

1
$(document).click(function(){ 
    $('#upload').show(); 
    $('#file').hide(); 
}); 

каждый клик, который не имеет собственного обработчика, вызовет document.click из-за события пузыря.

+0

Спасибо за ответ. но все еще не работает – rnk

+0

Когда я щелкнул снаружи, он не изменился – rnk

+0

Код @rnk отредактирован, селектор был не прав :) –