用jQuery创建一个onClick弹出消息
Creating a popup message onClick with jQuery
所以我想,当点击"search"时,从页面顶部出现一个小栏,上面有搜索表单,还有一个关闭按钮。单击关闭按钮的栏将弹出窗口滑回页面上方。代码如下,但我的问题是"我怎么能做得更好?现在看起来很乱!是否有一种方法可以不使用页面上隐藏的div,并在单击时运行函数时创建它?"
所以它从一个锚点开始,触发一个javascript函数使搜索栏自上而下:
<a onClick="toggleSearch()">Search</a>
function toggleSearch() {
$('#searchoverflow').slideToggle('fast')
};
它上下切换一个隐藏的div, #searchoverflow
(这是我想要摆脱的)。
<div class="notification" id="searchoverflow">
<a href="javascript:" onClick="toggleSearch()" style="width:100%; position:absolute;height:50px;"></a>
<div style="width:0px"><form style="width:200px" role="search" method="get" id="searchform" action="http://thenozzle.net/"><input type="text" value="" name="s" id="s"><input style="left:5px" type="submit" id="searchsubmit" value="Search"></form></div>
<a href="javascript:" class="notificationclose" onClick="toggleSearch()">CLOSE</a>
</div><!-- searchoverflow -->
他的popupdiv解释说:通知类只是样式,它是不相关的。搜索溢出的ID是我在javascript函数中使用的,因为我在页面上有其他通知,并且需要使这个特定。弹出框内的第一个锚是我用来使搜索栏消失时,点击它的身体。在那下面,另一个锚是以防人们没有意识到整个事情会让他隐藏起来。中间的div里面只有搜索表单
提前感谢!
我会说这正是你想要做的。
我认为你的代码是非常语义。div#searchOverflow
可能会被重命名为div#searchbox
,我将有点击事件得到编程绑定,但div
绝对应该在DOM中。
编辑,回答你的问题:
我的见解来自于设计模式中的模型-视图-控制概念[1]。在Web开发中,HTML是模型。它是你正在处理的东西,页面的物理部分。CSS就是视图。CSS描述了您希望如何显示该模型默认-块,颜色,字体等。Javascript是控制器。它是根据用户与网页的交互操作模型和视图的程序代码。
我们将这些关注点分离到不同的文件中,这样我们就可以快速更改每个部分的工作方式。通过将所有HTML放在一个文件中,我们不需要在更多的代码中寻找需要编辑的内容。假设您希望更改表单的目标,因为您在后端添加了一个新的搜索模块。没有看过你代码的人会先看。htm或。js文件吗?我会在。htm文件中查找,因为这是表单标签应该的位置(在我看来)。
然后,我将onclick绑定移动到JS。目前,你有它们在html与onclick="toggleSearch()"
。同样的原因——如果我是第一次看你的代码,我将首先在JS中寻找任何程序性的东西。至于怎么做:
$(function(){
$("#searchoverflow > a").click(
toggleSearch
); //'#searchoverflow > a' click handler
}); //doc ready
包装$(function(){})
是一个文档就绪处理程序-只有当页面上的所有内容都准备好时才会调用它。$("#searchoverflow > a")
只选择a
锚点,它们是包含div的直接子锚点。.click(_function_)
绑定click事件,因此当任何匹配该选择器的东西被单击时,函数将运行。
[1] http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 将多个onclick压缩为一个
- 如何向onClick事件处理程序传递一个接受参数的函数,并且仍然将该函数绑定到组件's”;这个“;上下文
- 全局屏幕span onclick触发一个事件javascript
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- 指定一个具有静态值的onclick函数
- window.onclick在一个网站中使用两次
- 如何在HTML按钮中有一个静态onclick参数
- 如何在一个onclick按钮上使用一个javascript函数选择多个文本字段
- 如何通过一个onclick事件更改两个单独的图像
- 如何使用onclick事件点击一个图像,并让它更改同一网页上的另一个图像
- 将onclick事件附加到具有一个元素的下拉列表中
- html链接onclick弹出一个表单
- jQuery onclick 函数:未定义不是一个函数
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 按钮onclick应该与参数一起重定向到另一个xhtml页面
- onclick适用于一个按钮,但不适用于'不要为别人工作
- 如何创建一个onclick函数,该函数在按下重新启动按钮时被调用
- “onclick"一个按钮在一个弹出只工作一次