我有一个小问题,比如,
我想为同一个td
调用两个函数,
1.如果用户点击td,调用一个函数,
2.当用户点击td
的范围时。
Jquery的:
if (jQuery(tr).find("td span").hasClass('drill_icon')) {
console.log('DRILL DOWN : ');
} else {
console.log('SELECT/UNSELCT : ');
}
我尝试了上面的jquery条件,但没有帮助。
请帮助我,如何检查用户是否点击了td,或者用户是否点击了span,
我知道,如果我使用两个td
,那么找到很容易:
<td title="Afghanistan" _colid="1" style="width: 95%; overflow: hidden;">Afghanistan<span class="right drill_icon"></span></td>
答案 0 :(得分:1)
使用两次点击功能
$("span.drill_icon").click(function() {
//span is clicked..
spanClickedFunction();
return false; //to make sure td click is not called here..this stops the event and td handler won't be called;
});
$("tr td").click(function() {
//td is clicked..
tdClickedFunction();
});
function spanClickedFunction(){
alert('span clicked');
}
function tdClickedFunction(){
alert('td clicked');
}
答案 1 :(得分:0)
两个选项:
一个用于span
:
$("span.drill_icon").click(function() {
// Do your thing here
// Stop the event
return false;
});
...和td
上的一个:
$("selector for td").click(function() {
// Do the thing
});
如果单击位于span
,则首先调用该处理程序,并且由于它停止了该事件,因此根本不会调用另一个处理程序。
或者使用一个处理程序但后来看到点击是否在span
:
$("selector for td").click(function(e) {
// In the span?
if ($(e.target).closest("span.drill_icon")[0]) {
// Yes
}
else {
// No
}
});
答案 2 :(得分:0)
$("table td span.drill_icon").click(function (e){
alert('Clicked on span');
e.stopPropagation(); // stops further propagation
});
$("table td").click(function (){
alert('Clicked on td');
});
请参阅demo
答案 3 :(得分:0)
您需要创建2个点击处理程序。一个用于TD,一个用于跨度。
$("td").click(function() {
//code that executes when clicked in the td but not in span
});
$("td span.drill_icon").click(function(event) {
//code that executes when clicked in the span
//prevents that the click-event gets fired on the parent elements
event.stopPropagation();
});
答案 4 :(得分:0)
你去吧
<script type="text/javascript">
$(function () {
$("td").click(function () {
alert("click on td");
});
$("td span").click(function () {
alert("click on span");
return false;
});
});
</script>
需要注意的重要事项是在span单击处理程序中返回false会阻止事件传播到其DOM父项。我认为jquery调用event.stopPropagation()来做这件事。
我觉得用你的例子测试很难,我可以建议: