Справка по синтаксису jquery - PullRequest
1 голос
/ 17 марта 2011

Привет всем,Я новичок в работе с переменными и пытаюсь заставить эту функцию работать.Мне было интересно, если кто-нибудь может помочь мне найти проблему в этом.Кажется, это не работает вообще.Я не уверен, правильно ли я все разметил.

<script type="text/javascript">
    $(document).ready(function() {
        $('.partners_internal_product_select input[type=radio]').live('change', function(){ //Setting up the chenge event for the radio button
            var AffectedRegistration = $(this).closest('.partners_internal_product_registration'); //Select the nearest div with this class
            var ID = $(this).attr('id'); //getting the ID of the radio button
            var IDArray = ID.split('_'); //seperating the ID into an array
            var regURL = 'accomodationpartners/'+IDArray[1]+'.php'; //building a url to load
            $(AffectedRegistration).load(regURL); //loading the url into the nearest div.partners_internal_product_registration
        });
    });

    </script>
    <div class="partners_internal_item_hdr"><h1 class="white">Program Registration</h1></div>
    <div class="partners_internal_item">
        <div class="partners_internal_item_subhdrfull"><h2>Select a Product to Register For:</h2></div>
        <div class="partners_internal_product_select">
            <fieldset><input type="radio" class="productselect" name="productselect" id="productselect_daytrip" /><label for="productselect_daytrip">Day Trip</label></fieldset>
            <fieldset><input type="radio" class="productselect" name="productselect" id="productselect_courseregistraion" /><label for="productselect_courseregistraion">Course Registration</label></fieldset>
            <fieldset><input type="radio" class="productselect" name="productselect" id="productselect_socialbusinessgroup" /><label for="productselect_socialbusinessgroup">Social/Business Group</label></fieldset>
            <fieldset><input type="radio" class="productselect" name="productselect" id="productselect_paddlefest" /><label for="productselect_paddlefest">Paddlefest</label></fieldset>
            <fieldset><input type="radio" class="productselect" name="productselect" id="productselect_paddleplay" /><label for="productselect_paddleplay">Paddle and Play</label></fieldset>
        </div>
        <div class="partners_internal_product_registration"></div>
    </div>

Ответы [ 2 ]

3 голосов
/ 17 марта 2011

Функция ближайшая в jQuery будет искать следующий элемент с указанным вами фильтром, который является родительским или родительским для родительского элемента и т. Д., В основном в дереве DOM.

В вашем скрипте вы ищете класс partners_internal_product_registration из переключателей, но div с классом partners_internal_product_registration, на самом деле является родным братом родителя переключателя.

Тебе действительно нужно

var AffectedRegistration = $(this).closest('.partners_internal_product_select')
                                .siblings('partners_internal_product_registration');
2 голосов
/ 17 марта 2011

Я могу только догадываться, что вы хотите с этим сделать, но я подозреваю, что проблема в этой строке:

var AffectedRegistration = 
  $(this).closest('.partners_internal_product_registration');

closest () пытается получить родителя суказанные параметры, хотя .partners_internal_product_registration div не является родителем радиокнопки.

Вы хотите получить ближайший .partners_internal_item, и в этом получить .partners_internal_product_registration div, который находится внутри него.

Вы делаете это со следующей строкой (используя контекст jQuery ):

var AffectedRegistration = 
   $('.partners_internal_product_registration',  
     $(this).closest('.partners_internal_item'));

или можете использовать функцию .children () :

var AffectedRegistration = 
   $(this).closest('.partners_internal_item')
     .children('.partners_internal_product_registration');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...