Problem with scope problem with $.each in jQuery . How can I get a global variable in a function to be set in a loop, or at least pass something from it?
var some_function = function() { // false by default var something = false; $.each(array, function(key, val) { if (val == 'something') { // even if one item evaluates true I need to check outside of the loop something = true; } }); if (something == true) { // do something else, but always false } }
Since I need to evaluate all the elements in the array, and if only one is true , then do something extra, outside of $.each .
Update
$(document).ready(function () { something(); $(':radio').trigger('change'); )};
Ok, so this is the actual code. He warns βfalseβ below, and then warns βhelloβ twice, as if he is going in the reverse order.
var something = function() { var q_radios = { 'radio1' : 'radio1_selector', 'radio2' : 'radio2_selector', }; var show_me = false; $.each(q_radios, function(name, q_selector) { $('input:radio[name=' + q_selector + ']').change(function() { show_me = true; alert('hello'); }); }); if (show_me == true) { alert('yes'); } else { alert('false'); } };
wesside
source share