что не так с этим кодом делегата jquery? - PullRequest
0 голосов
/ 29 июля 2011
function onBodyLoad()
{       
    document.addEventListener("deviceready",onDeviceReady,false);
    //for testing in safari only, comment out for deploy to iphone with phonegap
    $(document).ready(function(){ 
        loadPage('mainmenu', 'Home');

        $('#menus').toggle(); 

        //I have a nested div in this index.html file with id=menubottbutt  
        $("div").delegate("#menubottbutt","click",toggleMenu());

                $("div").delegate(".menuitem","click",toggleMenu());
    });


}

В элементе body у меня есть это

Когда это выполняется, и я нажимаю на строку делегата, я получаю ошибку ** TypeError: 'undefined' не является функцией (вычисление '$ ("div"). делегат ("# menubottbutt", "щелчок", toggleMenu ())')


И, конечно, у меня есть метод toggleMenu, определенный выше, и он работает при вызовеоткуда-то ещеПохоже, эта функция `function toggleMenu () {

$('#menus').toggle('slow'); 

$('#menubottbutt').toggleClass('pressed');

}`

Спасибо

PS Это то, что у меня есть: в моем onBodyLoad я буду использовать $. ( "#menubottbutt") нажмите (функция () {toggleMenu ();});и в других местах в удобных местах я буду называть: $ (". menuitem"). click (function () {toggleMenu ();});похоже, это решает мои проблемы, но, вероятно, было бы лучше, если бы я мог заставить делегата работать.

Ответы [ 2 ]

1 голос
/ 29 июля 2011

извините, но я не понял вашу проблему.

во время чтения вашего кода, я предполагаю, что на вашей странице есть 3 элемента div, которые должны выполнять указанный метод, когда пользователь нажимает один из них.

Так что мое решение будет в HTML

<div id="menu" class="menu"></div>
<div id="2ndMenu" class="menu"></div>
<div id="3rdMenu" class="menu"></div>

JS будет выглядеть так

$(document).ready(function(){
    $('.menu').click(function(){toggleMenu()});
});

Надеюсь, это то, что вы ищете

Торстен

0 голосов
/ 29 июля 2011

1001 * попробовать *

 $("div").delegate("#menubottbutt","click",function(){toggleMenu();});
 $("div").delegate(".menuitem","click",function(){toggleMenu();});

третий параметр должен быть именем функции

либо хорошо

  • "toogleMenu ()"
  • "toggleMenu"
  • function () {toggleMenu ();} // это рекомендуется
...