【发布时间】:2015-05-26 06:49:40
【问题描述】:
下面的代码用不同的裤子品牌填充第一个下拉列表:
$.each(pantsBrands, function(i){
var li = $('<li>')
.appendTo(pantsList);
var aaa = $('<a>')
.text(pantsBrands[i])
.attr('onclick','askPantStyle()')
.appendTo(li);
});
在接下来的代码中,我打算以某种方式使用上面的选择来填充第二个下拉框中的内容,该下拉框中由与第一个选择的品牌相关的样式组成。
var askPantStyle = function(){
$('#pantStyleDiv').slideDown();
alert($(this).text());
}
我使用警报来检查 (this) 会返回什么。本来希望是第一次选择的文本内容,结果出现警告框时,内容为空。
相关html如下:
<div id='pantsLanding'>
<p class="lead">Which brand of pants fits you best?</p>
<p class="lead">
<!-- Split button -->
<div class="btn-group">
<button type="button" class="btn btn-default">Brand</button>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul id="dropPants" class="dropdown-menu scrollable-menu" role="menu">
</ul>
</div>
</p>
</div>
<div id='pantStyleDiv'>
<p class="lead">What style do you prefer?</p>
<p class="lead">
<!-- Split button -->
<div class="btn-group">
<button type="button" class="btn btn-default">Style</button>
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span>
</button>
<ul id="dropPantStyle" class="dropdown-menu scrollable-menu" role="menu">
</ul>
</div>
</p>
</div>
【问题讨论】:
-
您的相关 HTML 是什么?并且引用函数名称
.attr('onclick', 'askPantStyle()')使其成为字符串,它不会 调用 函数 (.attr('onclick', askPantStyle)) 或从函数 (.attr('onclick', askPantStyle())) 获取返回值以使用 那 作为点击处理程序。也就是说,为什么要设置onclick事件处理程序,而不是使用jQuery 的click()方法? -
我不知道...我只是尝试过,但似乎效果不佳。一旦 div 加载了第一个下拉框,我就收到了警报,并且 askPantStyle div 已经可见......
标签: javascript jquery drop-down-menu selector taffydb