我有10個(ul)塊,它們是用$windows.onLoad動態構建的,在每個塊中我都有一個術語列表(li)。每個塊中的一些術語最初必須是不可見的。我只用jQuery選擇器在腳本中做所有的動作。
window).load(function () {
$.ajax({
url: '@controllers.blog.routes.BlogController.allBlogTerms()',
type: 'get',
success: function (terms) {
var urlPrefix = "@translateUrl(controllers.blog.routes.BlogController.termItem("").url)";
for (var l = 0; l < terms.length; l++) {
$('.list_of_terms').append('<div class="item col-md-4">\
<div class="inner_item">\
<div class="capital">\
' + terms[l].letter + '\
</div>\
<ul class="ul' + l + '">\
</ul>\
</div>\
</div>\
<div class="clearfix"></div>');
for (var t = 0; t <= terms[l].terms.length - 1; t++) {
if (t > 5)
$('.ul' + l).append('<li style="display:none;"><a href="' + urlPrefix + terms[l].terms[t].url + '">' + terms[l].terms[t].title + '</a></li>');
else
$('.ul' + l).append('<li><a href="' + urlPrefix + terms[l].terms[t].url + '">' + terms[l].terms[t].title + '</a></li>');
}
所以我在這些塊上創建按鈕來管理列表的可見性。 但我有一個問題,每個按鈕與每個塊耦合。當我在某個區塊上按下它時,它會顯示所有區塊中“li”的內容。
$.fn.myFunc = function() {
$('li').show();
};
$('.ul' + l).append('<button type="button" onclick="$(this).myFunc(????);">Canada</button>');
當我試圖傳遞參數& quotl & quot(這意味著塊的數量),它不能確定它的范圍(現在問號)。 因此,我如何參數化我的按鈕,使他們只能在UL他們所在的行動
將顯示頁面上所有的li元素。
我希望這個例子能幫助你:
<body>
<ul class='ul1'>
<li>Argentina</li>
<li>Albania</li>
<li>Australia</li>
</ul>
<ul class='ul2'>
<li>Belgium</li>
<li>Bangladesh</li>
<li>Bahrain</li>
</ul>
</body>
<script type="text/javascript">
// the button click event handler
function showItems(){
// get the class attribute of the ul element
// (assuming it has 1 class only):
var ul = $(this).parent().attr('class');
// create a selector using the id of the ul $(.ul1 li), $(.ul2 li):
$('.'+ul+' li').show();
}
// add buttons to the lists:
$('.ul1').prepend('<button type="button" class="btn">A</button>');
$('.ul2').prepend('<button type="button" class="btn"">B</button>');
$('li').hide();
// bind the showItems click event handler to the buttons:
$(document).on('click', '.btn', showItems);