2013-08-06 3 views
0

У меня есть некоторые HTML, как это:Достигнув элемент из ID в JQuery слушателю

<select id="myselect"> 
    <option>...</option> 
    <option>...</option> 
    <option>...</option> 
</select> 

<div class="myclass" id="mydiv">[...]</div> 

и, им мои JS

$("#myselect").addEvents({ 
    ..., 
    change: function(){ 
    $("#mydiv").addClass("anotherclass"); 
    } 
    ... 
}); 

Ну, мой скрипт может не хорошо $("#id"), ни в JS консоли Chrome Developers Tools. Что происходит? Возможно ли, что в слушателе, где объект this является сборщиком событий, селектор $("") работает неправильно?

Спасибо

EDIT: просто опечатка в вопросе, я забыл # в первом селекторе. проблема все еще включена.

+0

Просто из любопытства, что 'addEvents '? – billyonecan

ответ

0

Я смотрел только небольшую часть кода; теперь я его краснею, и это, кажется, MooTools, а не jQuery; Раньше я этого не замечал. Итак, я думаю, что это проблема.

0

Может быть, это должно быть $("#myselect") вместо $("myselect")

0

Вы мисс # в селектор JQuery
Попробуйте это:

$("#myselect").addEvents({ 
    ..., 
    change: function(){ 
    $("#mydiv").addClass("anotherclass"); 
    } 
    ... 
}); 
0

Вы забыли использовать документ, готовый? потому что jQuery не может найти элементы, если вы попытаетесь выбрать их до того, как DOM будет готов.

$(document).ready(function() { 
    $("#myselect").addEvents({ .... 

    ... }) 
}); 
0

addEvents() не метод JQuery (я считаю, что это MooTools), если вы хотите связать обработчик событий, используя тот же синтаксис, что и выше, используйте on():

$(document).ready(function() { 
    $('#myselect').on({ 
     change: function() { 
      $('#mydiv').addClass('anotherClass'); 
     } 
    }); 
}); 
Смежные вопросы