Jquery.click阻止默认onClick
Jquery .click prevent default onClick
我在一个无序列表中有多个列表项。每个列表项如下所示:
<li class="something" onclick="function(somePHPparameter)">somePHPparameter</li>
如果这很重要的话,函数将通过ajax填充一个当前为空的div。我希望它在默认情况下,当页面第一次加载完成时,单击li将填充div。如果再次单击同一个li,它将清空div。如果单击另一个li代替,只需使用不同的"somePHPparameter"更改内容。我目前的实现是这样的:
$('.continent').click(function(){
if ($(this).hasClass('select')){
$("#box").empty();
$('.continent').removeClass('select');
}
else{
$('.continent').removeClass('select');
$(this).addClass('select');
}
});
第一,我的代码有任何错误的逻辑吗?有多余的吗?第二,实际的问题是,即使删除了类,填充div的onclick仍然存在。e.preventDefault()和e.stopPropagation()不起作用。有什么想法吗?
event.prventDefault()和event.stopPropagation()在这种情况下没有帮助,因为在触发点击时已经调用了两个不同的函数。一个函数称为内联函数,另一个函数使用jQuery调用。
为了避免这种情况,请从<li>
中删除onclick
属性,并在jquery点击处理程序中调用该函数。
如果是PHP生成的param,请将其作为rel
属性添加到<li>
中,并在jquery处理程序中使用,如下所示:
<li class="something" rel="somePHPparameter">somePHPparameter</li>
--
$('.continent').click(function(){
if ($(this).hasClass('select')){
$("#box").empty();
$('.continent').removeClass('select');
}
else{
$('.continent').removeClass('select');
$(this).addClass('select');
var PHPparam = $(this).attr('rel');
functionCallUsing(PHPparam);
}
return false;
});
只是个粗略的想法。
您可以简单地执行
$('.continent').click(function(){
if ($(this).hasClass('select')){
$("#box").empty();
$('.continent').removeClass('select');
}
else{
$('.continent').removeClass('select');
$(this).addClass('select');
}
return false;
});
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何使用铁流星与流星的默认路线
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 如何在执行此特定onclick事件时执行JavaScript函数
- Setting default onclick behavior for <img> tag in gene
- Javascript全局onclick监听器
- CKeditor:更改对话框中的默认选择选项
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何调用“;链接_;在onclick事件上使用Javascript
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- Jquery.click阻止默认onClick
- Onclick 事件以删除文本输入字段中的默认值
- Jquery 日期选择器删除 onclick 和 onchange 并添加默认属性
- 如何在单击另一个元素时将onclick函数转换为默认文本
- 更改var onclick,但如果未设置则具有默认值
- HTML表单onclick调用javascript函数,然后调用默认的表单动作
- 设置onClick防止按钮具有默认行为
- 如何防止onclick方法中的默认事件处理
- 如何停止日期时间选择器设置今天的日期在文本框默认onclick
- 默认情况下禁用表单输入.在点击< >时启用它们.禁用不同的onClick