jquery 无法更改 ul li 样式

标签 jquery css html-lists click

$(document).ready(function(){
    $(".menu").on('click', 'li', function () {
  $(this).css('background-color', '#000000');
});
});
</script>

<ul class="menu">
  <li onclick="window.location.href='start.php'">Start</li>
  <li onclick="window.location.href='event.php'">event</li>
  <li onclick="window.location.href='event_list.php'">event list</li>
  <li onclick="window.location.href='black_list.php'">black list</li>
  <li onclick="window.location.href='logout.php'">logout</li>
</ul>

我正在尝试为单个点击的 li 元素更改样式。不知道为什么这行不通。有什么想法吗?

最佳答案

正如 j08691 所指出的,内联 javascript 并不是最好的主意。试试这个:

javascript/jQuery:

$(document).ready(function(){
    $(".menu").on('click', 'li', function () {
        $(this).css('background-color', '#000000');
        var loc = this.id + '.php';  //or $(this).attr('id') + '.php'; (but slower)
        window.location.href = loc;
    });
});

HTML:

<ul class="menu">
  <li id="start">Start</li>
  <li id="event">event</li>
  <li id="event_list">event list</li>
  <li id='black_list'>black list</li>
  <li id='logout'>logout</li>
</ul>

另请注意,如果页面被重定向,则 CSS 更改将不可见。您可能希望为新页面打开一个新选项卡,如下所示:

window.open(loc, '_blank');

关于jquery 无法更改 ul li 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199480/

相关文章:

jQuery - 追加内容

html - 自动排列列表项,例如表格列(图书术语表样式)

javascript - JQuery - $ ('#test ul > li' ).index(2).hide(); - 可能的?

css - 表单控制组的 Bootstrap 水平对齐

html - 将鼠标悬停在 <li>item</li> 上也会更改文本颜色... CSS 技巧?

javascript foreach select 循环选择值

javascript - 在页面向下滚动时将 pageYOffset 值添加到 div 的位置

javascript - 当我右键单击网格标题时,菜单未显示

jquery - Bootstrap affix- 在位置 :fixed 时将侧边栏保留在容器内

css - Polymer 2,从父级更改自定义元素中的 CSS