cript,
сделайте ваши переменные глобальными и они будут видны везде |
Да просто в самом действии используется переменная, например option,
<input type="radio" class="radio" name="button" value="u_1" onclick="action(option)"> На сколько мне известно функция должна быть осведомлена об этой переменной, но у меня что-то не выходит |
Цитата:
|
Еще раз обращусь по этой теме, может знаете как сделать так, чтобы при нажатии на button выполнялось действие привязанное к выбранному radio?
Делаю так, но безрезультатно: $(function () { rd = $(".output input:radio"); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 6, value: "0.00", slide: function(event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop("checked", true) } }); $("#rangevalue").html($("#slider-vertical").slider("value")); //#Start $('#rangevalue').click(function() { var value = $(":radio[name=Button]").filter(":checked").val(); switch(value) { case radio"u_0" { action("u_0"); } case radio"u_1" { action("u_1"); } case radio"u_2" { action("u_2"); } case radio"u_3" { action("u_3"); } case radio"u_4" { action("u_4"); } case radio"u_5" { action("u_5"); } } } //#End }) <input type="radio" class="radio" name="Button" value="\\\'u_'.$i.'\\\'" onclick="action(\\\'u_'.$i.'\\\')"> //Radio buttons <button id="rangevalue" class="betdisplay" style="border:0; color:#f6931f; font-weight:bold;"></button> |
Еще делал так
function validate (f) { var r = f.elements["Button"], rc = false; for (var i = 0, max_i = r.length; i < max_i; i++) { if (r[i].checked) { push_action(r[i].value ); break; } } return rc; } |
cript,
вы бы немогли немного помедитировать тут http://learn.javascript.ru/switch и убрать самостоятельно лишнее в строках 10 - 15 и добавить нужное |
cript,
всё это switch(value) { case radio"u_0" { action("u_0"); } case radio"u_1" { action("u_1"); } case radio"u_2" { action("u_2"); } case radio"u_3" { action("u_3"); } case radio"u_4" { action("u_4"); } case radio"u_5" { action("u_5"); } } заменяет value && action(value) и на всякий case "u_0" : action("u_0"); break; |
$("#rangevalue").click(function() { var value = $(":radio[name=Button]").filter(":checked").val(); value && action(value) } Не срабатывает |
cript,
срабатывает!!!! |
cript,
ищи чего в супе нехватает ) |
Нужно было скобочку закрыть )
Кстати может знаете как сделать, чтобы считывало не value а что нибудь другое, например value2 ? |
cript,
атрибут data -- пишите туда что вам нравится http://api.jquery.com/data/ http://htmlbook.ru/samouchitel-html5/atributy-data |
рони,
Что я делаю не так? action(jQuery.data("value")) data-value="200" |
cript,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> </head> <body> <input type="radio" class="radio" name="Button" value="u_0" checked="checked" data-value="200"> //Radio buttons <button id="rangevalue" class="betdisplay" style="border:0; color:#f6931f; font-weight:bold;" >click</button> <script> $("#rangevalue").click(function() { var value = $(":radio[name=Button]").filter(":checked").data('value'); value && alert(value) }) </script> </body> </html> |
Алерт срабатывает, а мое действие action нет, что может быть не так?
С предыдущим вариантом без data все срабатывает.. |
Цитата:
|
рони,
Все отлично работает! Проглядел кое-что у себя в коде, еще раз благодарю! |
Вопрос не совсем по теме и все же, если в коде слайдера заменить value на буквенное значение, то показывает NaN
range: "min", min: 0, max: 6, value: "Опция" Пробовал через переменные тоже самое Еще вопрос не по теме: как вы делаете "Посмотреть!" код на этом форуме?) |
Цитата:
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Цитата:
var name = "Поднять"; $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 6, value: name Иначе говоря нужно чтобы первое значение показывало не 0, а именно то что нужно. |
cript,
var name = 3; или иное |
Цитата:
|
Цитата:
|
при появлении ползунок показывает 0 или ту цифру которую мы зададим, а хотелось бы чтобы показывал фразу ну или хотя бы value кнопки..
|
Цитата:
|
Вот смотрите
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/mint-choc/jquery-ui.css"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <script> $(function () { var rd = $('.output input:radio'); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 5, value: 1, slide: function(event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop('checked', true) } }); $("#rangevalue").html( $("#slider-vertical").slider("value")); }) </script> <div class="output"> <input type="radio" class="radio" name="button" value="u_0" style="display:none;"> <input type="radio" class="radio" name="button" value="u_1" onclick="action(u_0)"> <input type="radio" class="radio" name="button" value="u_2" onclick="action(u_1)"> <input type="radio" class="radio" name="button" value="u_3" onclick="action(u_2)"> <input type="radio" class="radio" name="button" value="u_4" onclick="action(u_3)"> <input type="radio" class="radio" name="button" value="u_5" onclick="action(u_4)"> </div> <label for="rangevalue">Value:</label> <div id="rangevalue" style="border:0; color:#f6931f; font-weight:bold;"></div> <div id="slider-vertical" style="height:200px;"></div> Указано value: 1, это означает что по умолчанию ползунок будет выставлен на уровне одного деления. Однако он так и показывает "1", хотя если сдвинуть ползунок наверх или вниз, а потом обратно, то он уже будет показывать value кнопки. Вот хотелось бы чтобы он сразу показывал это значение. |
cript,
пожалуйста внимательно прочтите снова - Цитата:
|
cript,
<meta charset="utf-8"> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/mint-choc/jquery-ui.css"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <script> $(function () { var rd = $('.output input:radio'); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 5, value: 1, slide: function(event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop('checked', true) } }); $("#rangevalue").html('розовая пантера'); //$("#rangevalue").html( rd.eq($("#slider-vertical").slider("value")).val()); }) </script> <div class="output"> <input type="radio" class="radio" name="button" value="u_0" style="display:none;"> <input type="radio" class="radio" name="button" value="u_1" onclick="action(u_0)"> <input type="radio" class="radio" name="button" value="u_2" onclick="action(u_1)"> <input type="radio" class="radio" name="button" value="u_3" onclick="action(u_2)"> <input type="radio" class="radio" name="button" value="u_4" onclick="action(u_3)"> <input type="radio" class="radio" name="button" value="u_5" onclick="action(u_4)"> </div> <label for="rangevalue">Value:</label> <div id="rangevalue" style="border:0; color:#f6931f; font-weight:bold;"></div> <div id="slider-vertical" style="height:200px;"></div> показывать сам слайдер будет когда вы его хоть пальцем троните ))) строка 16 а то что вы хотели закоментировано |
Подскажите пожалуйста что я сделал не так?
$(function () { rd = $(".output input:radio"); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 12, value: 1, slide: function(event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop("checked", true) } }); $("#rangevalue").html($("#slider-vertical").slider("value")); $("#rangevalue").click(function() { var value = $(":radio[name=Button]").filter(":checked").data("value"); value && push_action(value) }) $("#rangevalue").html(rd.eq($("#slider-vertical").slider("value")).val()); }) |
Все вижу, нужно было $("#rangevalue").html($("#slider-vertical").slider("value")); заменить на ту строчку что вы мне дали, и все же теперь по умолчанию стоит нужное значение однако оно остается неактивным, то есть чтобы action сработал нужно все ровно сначала передвинуть ползунок ..
Даже если поставить на кнопку отдельно действие, то есть onclick="action(...)", то оно не будет задействовано.. Почему так? |
Цитата:
кроме того что добавлен var и закоментировано бесполезное $(function () { var rd = $(".output input:radio"); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 12, value: 1, slide: function (event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop("checked", true) } }); //$("#rangevalue").html($("#slider-vertical").slider("value")); $("#rangevalue").click(function () { var value = $(":radio[name=Button]").filter(":checked").data("value"); value && push_action(value) }) $("#rangevalue").html(rd.eq($("#slider-vertical").slider("value")).val()); }) |
Теперь по умолчанию стоит нужное значение однако оно остается неактивным, то есть чтобы action сработал нужно все ровно сначала передвинуть ползунок ..
Даже если поставить на кнопку отдельно действие, то есть onclick="action(...)", то оно не будет задействовано.. Почему так? |
cript,
а почему что-то должно работать само? |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Смотрите вот примерный код
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/mint-choc/jquery-ui.css"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> <div class="output" style="display:none;"> <input type="radio" name="Button" value="Поднять1" data-value="test1"> <input type="radio" name="Button" value="Поднять2" data-value="test2"> <input type="radio" name="Button" value="Поднять3" data-value="test3"> </div> <script type="text/javascript"> $(function () { rd = $(".output input:radio"); $("#slider-vertical").slider({ animate: true, orientation: "vertical", range: "min", min: 0, max: 3, value: 1, slide: function(event, ui) { $("#rangevalue").html(rd.eq(ui.value).val()); rd.eq(ui.value).prop("checked", true) } }); $("#rangevalue").html(rd.eq($("#slider-vertical").slider("value")).val()); $("#rangevalue").click(function() { var value = $(":radio[name=Button]").filter(":checked").data("value"); value && alert(value) }) }) </script> <button id="rangevalue" name="Button" class="betbuttons"></button> <div id="slider-vertical" style="height:200px;" class="slider"></div> Как мы видим при появлении если нажать на кнопку ничего не произойдет, но если передвинуть ползунок в любую сторону, а потом обратно и нажать на кнопку то действие будет выполнено, вот интересно почему так..? |
cript,
вы специально скрипты сжимаите, чтоб не только вас непонять было но и ваш код?если по кнопке никто не кликает и програмно некликает, какого чёрта функция повешанная на клик сработает . во вторых вы хоть в код вглядитесь -- .filter(":checked") - ищем отмеченный -- его кто-то при загрузке отметил? - и в клике у вас что ? в алерте -- где кавычки onclick="alert('test') |
Цитата:
|
cript,
да http://htmlbook.ru/html/input/checked |
Часовой пояс GMT +3, время: 07:02. |