Jquery Javascript - сделать встроенный JS функцию - PullRequest
0 голосов
/ 23 января 2012

Хорошо, так что это, наверное, очень легко, но я не могу понять это. У меня есть функция, но я все еще должен вызывать функцию inline. Мне интересно, есть ли способ поместить все это в функцию. Прямо сейчас моя функция выглядит так:

function ddItem(el) {
 $(el).closest(".ddSelectHeader").find("input").attr({
    value : $(el).text()
})
 }

Затем я называю эту функцию встроенной, как это:

<div class="ddContainer">
<div class="ddSelectHeader"><input name="" type="text" />
<div class="ddSubmenu">
  <a href="#" onclick="ddItem(this)">Item 1</a><br />
  <a href="#" onclick="ddItem(this)">item 2</a>
  </div>
</div>

Хорошо, поэтому я пытаюсь сделать простой выпадающий список, но с div вместо традиционного ul li. То, как написано выше, работает нормально, но я надеялся, что есть способ убрать этот щелчок, чтобы любая ссылка, щелкнувшая внутри ddSubmenu, заполнила поле ввода. Таким образом, мне не нужно называть это встроенным или в HTML.

Спасибо за помощь.

Ответы [ 4 ]

4 голосов
/ 23 января 2012
$(document).ready(function() {
    $(".ddSubmenu a").click(function(){
        var $this = $(this);

        $this.closest(".ddSelectHeader").find("input").val($this.text());
    });
})
1 голос
/ 23 января 2012
$(function(){
    $('.ddSubmenu > a').click(function(){
        var self = $(this);
        self.closest(".ddSelectHeader").find("input").val(self.text());
    });
});
0 голосов
/ 23 января 2012
$('.ddSubmenu a').click(function(){
    ddItem(this);
}); 
0 голосов
/ 23 января 2012

С помощью JavaScript вы можете использовать element.onclick: https://developer.mozilla.org/en/DOM/element.onclick

или jQuery's .click(): http://api.jquery.com/click/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...