2013-05-17 3 views
0

Чувство, как будто я являюсь порогом понимания селекторов Jqueries и обработки элементов - просто не совсем там!JQuery добавить атрибут к элементу на hover

Клонируется следующий html, поэтому пользователь может добавлять разные проблемы, что я пытаюсь сделать, это добавить результаты класса в последний div, чтобы я мог отображать результаты в правильном div. Но когда я нависаю над элементом, ничего не меняется, никаких ошибок javascript не помещают, поэтому я предполагаю, что это был случай моего таргетинга на неправильный элемент с моим кодом, переданным cack.

Itd действительно полезно, если кто-то может указать мне в правильном направлении для достойного учебника по селекторам jquery, рассматривали документы разработчика, но без того, чтобы кто-то стоял над моим плечом, объясняя вещи, некоторые понятия и терминология могут быть трудными чтобы развязать голову.

<div id="title-wrap1" style="margin-bottom:4px;" class="clonedInput"> 
    <select name="Issues[]"> 
     <option selected>Please Select...</option> 
      <?php 
      while($res = $title->fetch(PDO::FETCH_ASSOC)) { 
       echo "<option value=\"".$res['ID']."\">".$res['Issue']."</option>\n "; 
      } 
      ?> 
    </select> 
    <div> 
    </div> 
</div> 
<div> 
    <input type="button" class="btnAdd" value="+" /> 
    <input type="button" class="btnDel" value="-" /> 
</div> 

Это мой код Javascript

$(".clonedInput select").hover(
    function() { 
     $('.clonedInput div', this).attr('class', 'results'); 
    }); 

    $(document).on('change','.clonedInput select',function() { 
    var data = {id: $(this).val()}; 
    $.post('sub_db_handler.php', data, processResponse); 
     // var num = $('.clonedInput').length; 

     function processResponse(data) { 
      $('.clonedInput .results').html(data); 
     }; 
}); 
+0

Работает, если я положил его в Select обработчик изменения: Но мой вопрос все еще ориентации на текущий элемент, им будет об этом неправильный путь. – Funk247

ответ

1

Я имею в вашей пересмотреть положения, проблемы, вы используете функцию парения, чтобы отметить DIV принять результат. Это может быть сделано немного иначе

$(document).on('change','.clonedInput select',function() { 
    var data = {id: $(this).val()}; 

    $.post('sub_db_handler.php', data, $.proxy(processResponse, this)); 

    function processResponse(data) { 
     $(this).closest('.clonedInput').find('div').html(data); 
     //or $(this).next().html(data); as DerekHenderson pointed out 
    }; 
}); 

Если вы все еще хотите добавить класс результата

$(".clonedInput select").hover(
    function() { 
     $(this).closest('.clonedInput').find('div').addClass('class', 'results'); 
    } 
); 
+2

или просто '$ (this) .next()', так как они братья и сестры. –

+0

@DerekHenderson да, вы правы –

+0

$ (this) .closest ('. ClonedInput'). Find ('div'). Html (data); Был именно тем, что я искал, я был не уверен в синтаксисе и терминологии, большое спасибо :) – Funk247

0

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

$(document).ready(function() { 
    $(".clonedInput select").mouseover(function() { 
      $('.clonedInput div', this).attr('class', 'results'); 
      } 
     ); 

    $(document).on('change','.clonedInput select',function() { 
     var data = {id: $(this).val()}; 
     $.post('sub_db_handler.php', data, processResponse); 
     // var num = $('.clonedInput').length; 

     function processResponse(data) { 
      $('.clonedInput .results').html(data); 
     }; 
    }); 
    }) 
Смежные вопросы