jQuery点击功能只工作一次(新情况)
jQuery click function only working once (new situation)
UPDATE:指向站点的链接http://lucasvallim.com/previews/example/servicos.html
我需要删除div上每个.item_index li的所有id,然后将id#servicoativo添加到单击的id中。
它只工作一次,其他点击只会将ID添加到点击的链接中,不会再删除ID。。。
或者,如果可能的话,另一种解决方案是使用class而不是id。但在这种情况下,我必须从所有li项中只删除class"servicoativo",然后将该类添加到单击的项中。
id"servicoativo"添加了一个css以获得粗体字体,并为用户单击的li项目添加了背景。。它很简单,但我对jquery还不太熟悉。
欢迎所有解决方案。
有什么建议吗?
$("a.click_assessoria").click(function(){
$(".conteudo_dinamico").empty()
$.get('assessoria.html', function(result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
$("a.click_projeto").click(function(){
$(".conteudo_dinamico").empty()
$.get('projeto.html', function(result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
$("a.click_instalacao").click(function(){
$(".conteudo_dinamico").empty()
$.get('instalacao.html', function(result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
事实证明,这与事件委派无关,问题在于分配活动状态
$(".item_index").removeAttr("id");
$(this).parent().attr('id', 'servico_ativo');
很少有改进可以应用于这个
- 使用
data-*
存储目标资源路径 - 使用名为
active
的类引用活动导航项
尝试
<a href="#" class="item_index click click_assessoria" data-target="assessoria.html">assessoria</a>
<a href="#" class="item_index click click_projeto" data-target="assessoria.html">assessoria</a>
<a href="#" class="item_index click click_instalacao" data-target="instalacao.html">instalacao</a>
然后
var $dinamico = $('.conteudo_dinamico');
$('a.click').on('click', function () {
$dinamico.empty()
$.get($(this).data('target'), function (result) {
$dinamico.append(result);
$(".item_index").removeClass("active");
$(this).parent().addClass('servico_ativo');
});
});
使用On()而不是click()
$( "a.click_assessoria" ).on("click",function(){
$(".conteudo_dinamico").empty()
$.get('assessoria.html', function(result) {
$('.conteudo_dinamico').append(result);
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
});
$( "a.click_projeto" ).on("click",function(){
$(".conteudo_dinamico").empty()
$.get('projeto.html', function(result) {
$('.conteudo_dinamico').append(result);
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
});
$( "a.click_instalacao" ).on("click",function(){
$(".conteudo_dinamico").empty()
$.get('instalacao.html', function(result) {
$('.conteudo_dinamico').append(result);
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
});
您正在为多个HTML元素提供相同的id
。id
在HTML文档中应该始终是唯一的。
您可以为其指定class
,而不是设置元素的id
。与id
不同,几个HTML元素可以具有相同的class
。
更改
$(this).attr('id', 'servico_ativo');
带有
$(this).addClass('servico_ativo');
你的代码伙计没问题。。。
你需要一些改变。。。
普通单击不会为一个或多个事件附加事件处理程序函数。因此,使用on方法-将一个或多个事件的事件处理程序函数附加到所选元素。
尝试此代码并引用此链接:
Jquery.on()方法
Jquery 中.on方法的正确使用
$(document).ready(function(){
$(document).on('click', "a.click_assessoria", function () {
$(".conteudo_dinamico").empty()
$.get('assessoria.html', function (result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
$(document).on('click', "a.click_projeto", function () {
$(".conteudo_dinamico").empty()
$.get('projeto.html', function (result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
$(document).on('click', "a.click_instalacao", function () {
$(".conteudo_dinamico").empty()
$.get('instalacao.html', function (result) {
$('.conteudo_dinamico').append(result);
});
$(".item_index").removeAttr("id");
$(this).attr('id', 'servico_ativo');
});
});
- 一次又一次地在新的和相同的选项卡中打开一个url
- 仅当javascript的新内容出现时,才每3秒更新一次javascript
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- 每15天为新用户加载一次放大弹出菜单
- jQuery点击功能只工作一次(新情况)
- 一次选中4个复选框,然后将页面重定向到新页面
- 如何阻止 CSS3 动画在播放一次后运行并调用新动画
- 有没有办法让我的.js文件自毁,或重命名自己,或者在一次使用后将自己移动到新位置
- 一次提交两个 HTML 表单,一个在当前窗口中,一个在新窗口中
- 每天为每个新用户运行一次 JavaScript 函数
- 在滚动时没有获取新数据,而是在滚动时一次又一次地添加相同的 json 数据
- 一个函数,它接受回调并创建只能调用一次的新版本的回调.Javascript
- 如何在不刷新页面的情况下每 10 秒在本地重新加载一次 JS 文件
- 在每秒 10 次调用限制的情况下一次发出 50 个 API 请求的有效方法是什么(烂番茄 API)
- 检查窗口是否打开,并且只打开一次新窗口
- 在没有jquery的情况下只执行一次事件侦听器函数
- 在“选择将打开选项卡更改为新url”上.但是,如果在下一次选择更改时关闭了选项卡,该怎么办
- 在“;选择“;只更新一次新选项卡中打开的url
- 如何定义一次性事件,以便新的处理程序即使在事件已经发生后也会触发(一次)
- 是switch语句的表达式,每次求值一次或对每种情况求值一次