我对Jquery来说是全新的,并且遇到了一些问题,如果回答将来会有很大帮助。我有两个非常简单的问题 我正在使用codeigniter,HTML5和所有php页面。
我有一个'旁边'菜单,有4-5个部分,我希望能够关闭以节省空间。所以我使用了2个简单的slideToggle脚本。
$("a").click(function () {
$('#cat').slideToggle('slow', function() {
})
});
和
$("button").click(function () {
$('#dog').slideToggle('slow', function() {
})
});
问题是,如果我在两者上使用按钮,即使我要求脚本在2个不同的ID上运行,两个脚本都会运行(我知道狗和猫的事情很傻,我只是把它们扔进来看看是否有假身份证会起作用而且确实如此)
问题是,如何在两个脚本上使用按钮或href来保留样式?
我的第二个问题是你可以在.js文件上放置多个脚本以供包含吗?你会怎么做?每个都获得脚本标签或其他类型的分隔符吗?
感谢您的帮助,这些是我的前两个脚本。至少他们工作:)
<div class="menu">
<h2>News Links</h2>
<a href="#">Display</a>
<!--
if I use "button" here, both scripts run on tandem
-->
<script>
$("a").click(function () {
$('#cat').slideToggle('slow', function() {
})
});
benchmark-&GT;标记( 'links_start');
$ this-&gt; db-&gt; order_by('id','DESC');
$这 - &GT; DB-&GT;极限('10' );
$ query = $ this-&gt; db-&gt; get('links');
foreach($ query-&gt; result()as $ row)
{
echo“link \”title = \“$ row-&gt; title \”target = \“_ blank \”&gt; $ row-&gt; name“;
}
$这 - &GT; benchmark-&GT;标记( 'links_end');
?>
</ul>
</div>
</div>
<div class="menu">
<h2>Archives</h2>
<button>Display</button> <!--if I use "a" here, both scripts run on tandem
-->
<script>
$("button").click(function () {
$('#dog').slideToggle('slow', function() {
})
});
</script>
<div id="dog">
<?php
$this->db->order_by('id', 'DESC');
$where = "publish";
$this->db->where('status', $where);
$this->db->select('id, title', FALSE);
$this->db->select('DATE_FORMAT(date, "%b %D %Y")AS date');
$this->db->from('posts');
$query = $this->db->get();
foreach ($query->result() as $row)
答案 0 :(得分:2)
您可以使用组合选择器:
$("a, button").click(function () {
$('#cat').slideToggle('slow');
});
这样,当点击a
或button
时,您就可以运行相同的功能。
我的第二个问题是你可以在.js文件上放置多个脚本以供包含吗?你会怎么做?每个都获得脚本标签或其他类型的分隔符吗?
javascript'脚本'通常是指script
标记所包含的文件,但该用法不明确。
您在帖子中的内容是javascript声明,可能位于您网页上的script
标记内:
<script type="text/javascript">
function helloWorld() {
alert('Hello world');
}
</script>
您可以执行此操作(内联到页面),或将包含的代码移出到.js文件并引用它:
<script type="text/javascript" src="myjavascript.js"></script>
您的myjavascript.js
文件如下所示:
function helloWorld() {
alert('Hello world');
}
myjavascript.js
可以包含您想要的javascript。常见的方法是将分组功能放入单个javascript文件中,并将其包含在页面中。通过在每个使用它的页面上将script
标记包含在内,可以轻松地重复使用您在多个页面上编写的javascript(我假设您已经使用jquery javascript库完成了此操作)。
您可以执行与jquery完全相同的操作,并将所有javascript转储到.js文件中,并使用script
将其加载到您的页面中。
答案 1 :(得分:2)
我认为你想要的是这样的:
<button id="news_display">Display News</button>
<button id="archive_display">Display Archive</button>
$("#news_display").click(function () {
$('#news').slideToggle('slow');
});
$("#archive_display").click(function () {
$('#archive').slideToggle('slow');
});
这使用jQuery id selectors作为点击事件,就像您在匿名函数中所做的那样。这样,他们就是具体而独立的。
答案 2 :(得分:1)
重新:你的第二个问题:你发布的代码
$("a").click(function () {
$('#cat').slideToggle('slow', function() {
})
});
...是一个陈述。您可以将任意数量的语句编写到单个javascript文件或<script>
标记中。如果您有多个JavaScript文件,则可以将它们连接到一个文件中,并从脚本标记中引用该文件。