NiceIce
@NiceIce
lamer

Как передалать кнопки в выплывающий список?

У меня есть много кнопок как переделать их чтобы был только выплывающий список и когда выбираю из списка той или другой варинт выполнялось действие которое задано под кнопкой ?
Вот коды кнопок:
$('body').append('<input type="button" value="бе" id="btn8">')
  $("#btn8").css("position", "absolute").css("top", 122).css("left", 200);
  $('#btn8').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('5');   // 5464
var checkbox = $('[name="product_category[]"][value=5464]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});
$('body').append('<input type="button" value="б" id="btn9">')
  $("#btn9").css("position", "absolute").css("top", 122).css("left", 220);
  $('#btn9').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('181');
var checkbox = $('[name="product_category[]"][value=5465]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});
$('body').append('<input type="button" value="г" id="btn10">')
  $("#btn10").css("position", "absolute").css("top", 122).css("left", 240);
  $('#btn10').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('193');
var checkbox = $('[name="product_category[]"][value=5466]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});
$('body').append('<input type="button" value="ж" id="btn11">')
  $("#btn11").css("position", "absolute").css("top", 122).css("left", 260);
  $('#btn11').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('134');
var checkbox = $('[name="product_category[]"][value=5467]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});
$('body').append('<input type="button" value="з" id="btn12">')
  $("#btn12").css("position", "absolute").css("top", 122).css("left", 280);
  $('#btn12').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('26');
var checkbox = $('[name="product_category[]"][value=5468]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});
$('body').append('<input type="button" value="ко" id="btn13">')
  $("#btn13").css("position", "absolute").css("top", 122).css("left", 300);
  $('#btn13').click(function(){
$('[name="product_option[3][product_option_value][2][option_value_id]"]').val('205');
var checkbox = $('[name="product_category[]"][value=5469]');
var isChecked = checkbox.prop("checked");
checkbox.prop('checked', !isChecked);
});

Кнопок больше, показал пример.
Можете показать 1 пример как сделать ?
  • Вопрос задан
  • 2380 просмотров
Пригласить эксперта
Ответы на вопрос 1
Writerim
@Writerim
Заполнить позже...
Ну вам для начала бы все это делать не через append а сделать просто версткой. Код сократиться раза в 4. Далее
$('[name="product_option[3][product_option_value][2][option_value_id]"]')
такие конструкции не рекомендуется делать. Это во-первых нечитаемо, во-вторых медленнее.

$("#btn13").css("position", "absolute").css("top", 122).css("left", 300);

// такие вещи переделываются так

$("#btn13").css({
"position": "absolute",
"top":122,
"left": 300
});


$('#btn13').click(function(){

// Можно переделать на такой лад. 
// Не знаю насколько это правильно использовать так replace 

$('input[type="button"]').click(function(){
 if(this.id.match( /btn([0-9]+)/g  )){
    this.id.replace(/btn([0-9]+)/g, function( all , number)){
      if(){...}
      switch ...
   } )
  }
})


var checkbox = $('[name="product_category[]"][value=5467]');
var isChecked = checkbox.prop("checked");

// Чем меньше переменных тем лучше

$('[name="product_category[]"][value=5467]').prop( "checked" ) // true || false


Когда ваш код можно будет хоть как то читать - пишите еще раз вопрос

Для прочтения
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы