结合更改活动li并重新加载页面javascript

时间:2017-10-13 17:33:32

标签: javascript jquery codeigniter

点击我的页面有两个简单的函数js,第一个是在当前li中更改css,另一个是仅重新加载内容。

更改活跃的

$(".list li").on("click", function(){
    $(".list li").removeClass('active');
    $(this).addClass('active');
});

仅重新加载内容

$('.content').load('Passtel/dashboard');
$('ul.list li a').click(function(){
   var page = $(this).attr('href');
   $('.content').load('Passtel/'+page);
   return false;
});

问题是,它只是函数重载内容只有在有两个正在运行时才有效,但我已经测试了每个函数的工作原理。

如何让两个功能一起工作?

这是我的内容结构

        <!-- Menu -->
        <div class="menu">
            <ul class="list">
                <li class="active">
                    <a href="dashboard">
                        <i class="material-icons">home</i>
                        <span>DASHBOARD</span>
                    </a>
                </li>
                <li>
                    <a href="check">
                        <i class="material-icons">text_fields</i>
                        <span>CHECK SITE</span>
                    </a>
                </li>
                <li>
                    <a href="datek">
                        <i class="material-icons">layers</i>
                        <span>DATA TEKNIS</span>
                    </a>
                </li>
           </ul>
        </div>

2 个答案:

答案 0 :(得分:1)

只需一个功能即可实现。希望它有所帮助!

jsbin.com

const ul = $(".list");
const list = ul.find('li');

ul.on("click", 'li a', function(e){
  e.preventDefault();
  list.removeClass('active');
  $(this).parent().addClass('active');

  var page = $(this).attr('href');
  // replace this with your $('.content').load('Passtel/'+page);
  $('.content').load('https://jgatjens.com/?' + page);
});

答案 1 :(得分:0)

您可以使用以下内容:

$(function () {
    $('.content').load('Passtel/dashboard');
    $('ul.list li a').click(function () {
        e.preventDefault();
        $(".list li").removeClass('active');
        $(this).parent().addClass('active');  //added parent() here
        var page = $(this).attr('href');
        $('.content').load('Passtel/' + page);
        return false;
    });
});

&#13;
&#13;
//$('.content').load('Passtel/dashboard');
$('ul.list li a').click(function (e) {
        e.preventDefault();
	$(".list li").removeClass('active');
	$(this).parent().addClass('active');
	var page = $(this).attr('href');
	//$('.content').load('Passtel/' + page);
	return false;
});
&#13;
.active {
    background-color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="menu">
	<ul class="list">
		<li class="active">
			<a href="dashboard">
				<i class="material-icons">home</i>
				<span>DASHBOARD</span>
			</a>
		</li>
		<li>
			<a href="check">
				<i class="material-icons">text_fields</i>
				<span>CHECK SITE</span>
			</a>
		</li>
		<li>
			<a href="datek">
				<i class="material-icons">layers</i>
				<span>DATA TEKNIS</span>
			</a>
		</li>
	</ul>
</div>
&#13;
&#13;
&#13;