2013-07-29 2 views
-3

У меня есть кнопка в настоящее время доступна с идентификатором:Как заменить кнопки на мыши с помощью JQuery

<input type="button" id="show_button" value="Show" /> 

То, что я хочу, это that..onclicking кнопки, значение кнопки будет изменено на " Hide ", и его идентификатор будет изменен на" hide_button ".. И при нажатии кнопки hide это значение будет изменено на" Показать ", и его идентификатор изменится на" show_button ".. Как я могу это достичь?

+3

Просто из любопытства, почему вы хотите изменить идентификатор? – putvande

+0

Неправильно менять id (изменить класс с помощью 'toggleClass') – FSou1

ответ

5

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

$('#show_button').click(function(){ 
    var $this=$(this); 
    $this.val(($this.val()=="Show")?"Hide":"Show"); 
}); 

это лучше, так как вы не должны использовать служ о щелкните обработчик событий для обоих ид ..

и если упаковывают вам нужно изменить идентификаторы .. затем использовать по делегированию события ..

$(document).on('click','#show_button',function(){ 
    var $this=$(this); 
    $this.prop('id','hide_button'); 
    $this.val("Hide"); //OR $this.val("Hide") //if you are using input type="button" 
}); 

$(document).on('click','#hide_button',function(){ 
    var $this=$(this); 
     $this.prop('id','show_button'); 
    $this.val("Show"); //OR $this.val("Hide") //if you are using input type="button" 
}); 

fiddle here

+0

Я хочу изменить id .. внутри id у меня есть переменная php .. id =" show_button ". $ Show. '" .. I не нужно двух кнопок. но используя одну кнопку, если я могу изменить идентификатор кнопки, тогда у меня могут быть две функциональности ... Только изменение значения не помогло бы. – user2605321

+0

обновленный мой пост, пожалуйста, проверьте ... :) – bipen

+0

это работает..отказывает ..! – user2605321

1

Вы можете изменить значение с помощью

$('#show_button').val('hide'); 

Вы можете изменить идентификатор с помощью

$('#show_button').attr('id','hide_button'); 
1

Использование библиотеки Jquery Javascript:

$('body').on('click', '#show_button', function() { 
    $(this).attr('id', 'hide_button').val('Hide'); 
}); 

$('body').on('click', '#hide_button', function() { 
    $(this).attr('id', 'show_button').val('Show'); 
}); 
+1

Это будет работать только в первый раз, поскольку вы не используете делегирование. – smerny

+0

«on» IS delega: –

+1

on позволяет делегировать с использованием параметра селектора - так, как вы его написали, он не использует делегирование: http: // jsfiddle.net/stEd8/1/ – smerny

1
$('body').on('click', '#show_button, #hide_button', function() { 
    var $this = $(this), 
     isShow = $this.attr('id') == 'show_button'; 

    if (isShow) { 
     $this.attr('id', 'hide_button').val('Hide'); 
    } 
    else { 
     $this.attr('id', 'show_button').val('Show'); 
    } 
}); 

jsFiddle: http://jsfiddle.net/sW49u/

1

В одном решении для вашего вопроса есть 2 входа, которые вы переключаете между ними. Мне не нравится изменение/переименование принципа id.

Проверьте это demo.

HTML

<input type="button" id="show_button" value="Show" /> 
<input type="button" id="hide_button" value="Hide" style="display:none;" /> 

JQuery

$('input').click(
    function(){ 
     $('input').toggle(); 
}); 
1

Рабочий пример: http://jsfiddle.net/TjaBR/

$('body').on('click', '#process', function() { 
    $(this).toggleClass('hidden'); 
    $(this).val($(this).hasClass('hidden') ? 'Hide' : 'Show'); 
}); 
+0

Где id = 'show_button' и' hide_button'? –

+0

Я сказал, что это неправильная практика, чтобы изменить id в комментарии – FSou1

+0

Но это не проблема. –

Смежные вопросы