首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript onClick()问题

Javascript onClick()问题
EN

Stack Overflow用户
提问于 2015-02-12 19:03:41
回答 2查看 154关注 0票数 4

下面是我的表,其中每一行都有2个onClick事件。当我单击每一行时,它会调用我定义的方法,但现在您会看到最后一列有一个复选框。我想如果点击这个复选框,就不需要在Javascript onClick中调用这个方法了,这是可能的吗?

备注:循环运行时使用php :

代码语言:javascript
复制
echo "<tr onclick='getDetails($cdid), visited(this);'>";                
echo "<td class='' valign='top' align='left' width='20'>$companyName</td>";
echo "<td class='' valign='top'>$family_name</td>";
echo "<td class='' valign='top'>$given_name</td>";
echo "<td class='' valign='top'>$department</td>";
echo "<td class='' valign='top'>$title<input type='checkbox' name='add_to_project'/></td>";    
echo "</td>";
echo "</tr>";

更新:

函数getDetails(id) {

代码语言:javascript
复制
    try { 
        keepcontact = false;
        if($("#contentText").val() != "" && $("#contentText").val() != null)
        {
            var toCharNotes = $('#saveToChrNote').is(':checked');
            //AUTO save the charnotes if is checked without prompt
            if( toCharNotes == true ){
                var formData = new FormData($("#addNewNotes").parents('form')[0]);      
                    var cid=$(this).parents('form:first').find('#cdid').val();

                    $.ajax({
                        url: 'response.php',
                        type: 'POST',
                        xhr: function() {
                            var myXhr = $.ajaxSettings.xhr();
                            return myXhr;
                        },
                        success: function(data){                      
                          getDetails2(id);  


                        }, 
                        data: formData,
                        cache: false,
                        contentType: false,
                        processData: false
                    });
            } else {
                var saveNote = confirm("Save or clear Enter Note before proceeding ?");
                if (saveNote == true) {
                    var formData = new FormData($("#addNewNotes").parents('form')[0]);      
                    var cid=$(this).parents('form:first').find('#cdid').val();

                    $.ajax({
                        url: 'response.php',
                        type: 'POST',
                        xhr: function() {
                            var myXhr = $.ajaxSettings.xhr();
                            return myXhr;
                        },
                        success: function(data){                      
                          getDetails2(id);  


                        }, 
                        data: formData,
                        cache: false,
                        contentType: false,
                        processData: false
                    });

                } else {
                    keepcontact = true;
                    // do nothing.. :D
                    //getDetails2(id);
                }
            }
        } 
        else{
            getDetails2(id);
        }
    }
    catch(err){
        alert(err);
    } 
}
EN

回答 2

Stack Overflow用户

发布于 2015-02-12 19:07:34

只需稍微修改一下您的函数

代码语言:javascript
复制
function visited(a)
{
 if(a.getAttribute("name")=="add_to_project") return;
// Rest of the code of your function

}

将此行放在函数visited的顶部

代码语言:javascript
复制
if(a.getAttribute("name")=="add_to_project") return;

稍微修改一下PHP

代码语言:javascript
复制
echo "<tr onclick='getDetails($cdid, this), visited(this);'>";                

并修改getDetails函数

代码语言:javascript
复制
function getDetails(a, b) 
{
if(b.getAttribute("name")=="add_to_project") return;
// Rest of the function

}
票数 0
EN

Stack Overflow用户

发布于 2015-02-12 19:14:15

您可以在handler的末尾使用return false;来停止事件冒泡。尝试这个演示场景,

HTML :

代码语言:javascript
复制
<table id="infoTable">
    <tr>
        <td>Click Here</td>
        <td>
            <input type="checkbox" id="innerCheckBox" />
        </td>
    </tr>
</table>

jQuery :

代码语言:javascript
复制
$("#infoTable tr").on("click", function(){
    alert("tr");
});

$("#innerCheckBox").on("click", function(){
    alert("checkbox");
    return false;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28475802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档