2014-01-19 2 views
0

Я пытаюсь запустить функцию с любого переключателя при нажатии, но, похоже, она не работает.У вас возникли проблемы с jQuery «on» нажмите

Моего код:

$('.radio [name=list_in]').on('click', function() { 
    updateListingForm('list_in'); 
}); 

Мой HTML:

<div class="fields"> 
    <div class="radio"> 
     <div class="pretty_rb styledRadio" style="background-image: url('images/form-radio-icons.png'); width: 19px; height: 20px; cursor: pointer; background-position: 0px -20px;"><input type="radio" checked="" value="auction" class="pretty_rb" id="list_site" name="list_in" style="display: none;"></div><label for="list_site">Site</label> 
    </div> 
    <div class="radio"> 
     <div class="pretty_rb styledRadio" style="background-image: url('images/form-radio-icons.png'); width: 19px; height: 20px; cursor: pointer; background-position: 0px 0px;"><input type="radio" value="store" class="pretty_rb" id="list_store" name="list_in" style="display: none;"></div><label for="list_store">Store</label> 
    </div>      
    <div class="contentClear"></div> 
</div> 

Я использую плагин JQuery для стиля полого радио и это HTML выводит, так что почему нормальное радио поля скрыты.

Я не могу использовать событие onclick из-за this reason; поэтому я пробовал использовать здесь on, но я не могу заставить его стрелять?

Что я делаю неправильно !?

+1

Вы можете назначить щелчок слушателю оказанным кнопки вместо тех, которые скрыты? – Shomz

+0

$ (document) .on ('click', '. Radio [name = list_in]', function() {updateListingFrom ('list_in');}); Попробуйте это – Sedz

+0

что-то не так с тем, как вы присоединяете событие click. Я думаю, что это не называется, я создал этот [jsfiddle] (http://jsfiddle.net/73mQk/), и он сработал. вы завернули свой код щелчка в '$ (document) .ready (function() {/ * ваш код * /})'? –

ответ

1

Назначают слушателя оказанным элементов вместо скрытых из них:

$('.radio .pretty_rb').on('click', function() { 
    updateListingForm('list_in'); 
}); 
+0

Nice, downvote. – Shomz

+0

Ах, да, как глупо от меня, подумал об этом ха-ха ..... моя единственная проблема - мне придется помещать их в идентификатор, чтобы он не применялся к другим радиополям на странице, но не biggie, хотя ... . благодаря! – Brett

+0

Да, вам нужен способ их отличить, но это основная идея. Пожалуйста, рад, что вы разобрались! :) Забавно, как никто не удосужился прочитать полный вопрос ... – Shomz

0

Попробуйте это,

$('.radio').on('click', function() { 
    updateListingForm('list_in'); 
}); 
0

Я думаю, что вы пропустите $ (документ) .ready (функция() { ...});

Этот код работает для меня:

$(document).ready(function() { 
    $('.radio [name=list_in]').on('click', function() { 
     alert('It works'); 
    }); 
}); 
+0

Извините, мой плохой, он уже завернут в один. – Brett

+0

Метод on(), по-видимому, работает только с видимыми элементами, вместо этого вы можете использовать deleagte: $ (document) .ready (function() { $ ('body'). On ('click', '. радио [name = list_in] ', function() { alert ("This works"); }); }); –