2016-02-05 3 views
1

У меня есть рабочая версия javascript для отключения/включения кнопки от кнопки, но я не могу заставить ее работать с помощью jQuery.отключить кнопку включения с помощью jquery

У моего jsfiddle есть обе версии. Версия javascript закомментирована.

//NOT WORKING jQuery 
    function controls(id) { 
    if (id === "button_start") { 
    //$('button_start').prop('disabled','disabled'); 
    // $('button_stop').removeProp('disabled','disabled'); 

    // testing 
    $('#button_start').on('click',function() { 
     $(this).prop('disabled', 'disabled'); 
    }); 
    $('#button_stop').on('click', function(){ 
     $(this).removeProp('disabled', 'disabled'); 
    }); 

    //console.log(id); 

    } else { 
    //$('button_stop').prop('disabled','disabled'); 
    //$('button_start').removeProp('disabled','disabled'); 

    // testing 
    $('#button_stop').click(function() { 
     $(this).prop('disabled', 'disabled'); 
    }); 
    $('#button_start').click(function(){ 
     $(this).removeProp('disabled', 'disabled'); 
    }); 
     //console.log(id); 
     } 
    } 

jsFiddle: https://jsfiddle.net/tommy6s/w2u8eskv/

Спасибо за вашу помощь!

+0

Инвалидам * Свойство * булева. Установите значение true или false, не устанавливайте его в строке или не пытайтесь удалить его. – nnnnnn

+0

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

ответ

0

Это может не решить вашу проблему, однако вы используете неправильный способ removeProp. Согласно документации JQuery, removeProp принимает только один атрибут

.removeProp(propertyName) 
propertyName 
Type: String 
The name of the property to remove. 

В вашем примере, я хотел бы изменить свои строки, которые выглядят как этот

$('#button_start').click(function(){ 
    $(this).removeProp('disabled', 'disabled'); 
}); 

к этому

$('#button_start').click(function(){ 
    $(this).removeProp('disabled'); 
}); 

https://api.jquery.com/removeProp/

Кроме того, помните, что элементы id должны начинаться с # знак. У вас это было в вашем OP, но не на скрипке.

0

Ваши селекторы ошибочны.

$('button_start') 

должен быть

$('#button_start') 
    ^--------------- Missing id selector syntax 

Затем вам нужно включить библиотеку JQuery для скрипки, чтобы начать работать.

0

Добавить стиль:

#button_start:disabled{background:blue;opacity:0.3;} 

и сценарий:

function controls(id) { 

    if (id === "button_start") { 
     $('#button_start').attr('disabled','disabled');  
     $('#button_stop').removeProp('disabled'); 
    } else { 
     $('#button_stop').attr('disabled','disabled'); 
     $('#button_start').removeProp('disabled'); 
    } 
} 
Смежные вопросы