2015-03-27 2 views
0

Информация и вопрос: Если вы запустите JSFiddle, вы заметите, что всплывающее окно всплывает, как и должно было, когда документ загружается, но когда вы нажимаете кнопку, это не так. Это тот же самый точный код, но я не могу за всю жизнь понять, почему он не имеет одинаковых результатов.Почему я могу открыть раскрывающийся список Bootstrap в документе, но не в моей собственной функции?

JSFiddle:http://jsfiddle.net/pLsuxkaa/

HTML:

<input type="button" onclick="testfun();" value="Test"/> 
<p></p> 
<br/> 
<br/> 
<div class="dropdown testmenu"> 
    <a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html"> 
     Dropdown <span class="caret"></span> 
    </a> 
    <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> 
     <li>Content 1</li> 
     <li>Content 2</li> 
     <li>Content 3</li> 
    </ul> 
</div> 

Сценарии:

$(function() 
{ 
    $('p').html('started'); 
    $('.testmenu .dropdown-menu').dropdown('toggle'); 
}); 

function testfun() 
{ 
    $('p').html('test button pushed'); 
    $('.testmenu .dropdown-menu').dropdown('toggle'); 
} 

ответ

1

Когда у WRITE

$('.testmenu .dropdown-menu').dropdown('toggle'); 

Вы объявляете новый выпадающий список, после этого вы просто должны переключаться так:

$('.testmenu .dropdown-menu').toggle(); 

Полный код:

$(function() 
{ 
    $('p').html('started'); 
    $('.testmenu .dropdown-menu').dropdown('toggle'); 
}); 

function testfun() 
{ 
    $('p').html('test button pushed'); 
    $('.testmenu .dropdown-menu').toggle(); 
} 
+0

Хм, похоже, что [загрузочные документы] (http://getbootstrap.com/javascript/#dropdowns-methods) неверен? –

+0

@BryantMiano: кажется, да, 'Options None ', и вы можете дать опцию' toggle ', это странно, но это исправить эту проблему, протестировать ее на скрипке. –

+0

Спасибо, Бенджамин, все отлично. Это научит меня читать документацию :) – Richard

0

Вы бы назвать testfun() внутри $(function() Функция (документ готов), так как при помощи начальной загрузки функций требует страницы, которая будет по окончании загрузки

0

Вы можете просто связать событие т он вводит кнопку, и функция обратного вызова открывает раскрывающееся меню. Вот пример:

$('input').on('click', function (e) { 
    e.stopPropagation(); 
    $('p').html('test button pushed'); 
    $('.testmenu .dropdown-menu').dropdown('toggle'); 
}); 

А вот рабочий jsfiddle.

Смежные вопросы