避免选择onClick

时间:2011-08-23 14:54:59

标签: jqgrid

我想阻止jqGrid元素上的onClick选择。

怎么可能?

以下是您的示例

转到此链接http://www.ok-soft-gmbh.com/jqGrid/UnobtrusiveLinksNew.htm

在此页面中,如果我点击 Michael Schumacher Lukas Podolski 相关行将被选为黄色。另一方面,如果我点击公式1 足球相关的行没有选择。我想在jqGrid中的一个元素上得到这种行为。

更新 这是我的代码

$(document).ready(function() 
    {

$(function()
    { 
      $("#list").jqGrid
      ({
            url:'example.php',
            datatype: 'xml',
            mtype: 'GET',
            colNames:['RABR member in Circle','Date Sent','Status','Action'],
            colModel :
            [ 

              {name:'tax', index:'tax', width:85, align:'left',sortable:false,formatter:format_row},
              {name:'invdate', index:'invdate', width:60, align:'center',sortable:false,formatter:format_date}, 
              {name:'amount', index:'amount', width:35, align:'center', sortable:false,formatter:format_status},
              {name:'amount', index:'amount', width:55, align:'left',title:false, sortable:false,formatter:format_rate_me,beforeSelectRow: function(rowid, e) { return false; },
}, 
            ],
            pager: '#pager',
            rowNum:10,
            rowList:[10,20,30],
            viewrecords: true,
            multiselect: true,
            altclass:'myAltRowClass',
            altRows:true,
            width:624,
            height:'auto' }).navGrid('#pager',{edit:false,add:false,del:false}); 
        }) ;    


        function format_row(cellValue, options, rowObject) 
            {
                var split_result = cellValue.split("+");
                var show_result= "<img src='images1/" + split_result[0] + "'/><b id='pro_name'>"+ split_result[1] + "</b></br><b id='e_add'>" + split_result[2]+"</b>";
                return show_result;
            }


        function format_date(cellValue, options, rowObject) 
            {
                var date = "<div class='date'>" + cellValue + "</div>";
                return date;
            }


        function format_status(cellValue, options, rowObject) 
            {
                var status_image = "<img src='images/" + cellValue + ".jpg' />";
                return status_image;
            }   


        function format_rate_me(cellValue, options, rowObject) 
            {   
                var optoins = "<div class='rate_me_text'>" + cellValue + "<div class='star_div'></div><div class='down_arrow'></div>   <div class='options'><ul><li class='add_me'><a href='#'>Add as a friend</a></li><li class='view_circle'><a href='#'>View Circle Members(23)</a></li><li class='send_msg'><a href='#'>Send messages</a></li><li class='add_to_watch'><a href='#'>Add to watch list</a></li><li class='gifting'><a href='#'>Give a gift</a></li><li class='remove'><a href='#'>Remove from Circle</a></li><li class='block'><a href='#'>Block</a></li><li class='report'><a href='#'>Report abuse</a></li></ul></div></div>";              
                return optoins;
            }

    });

我想在点击.down_arrow类时避免选择。

感谢回复

更新

“@ Oleg”

最后我做到了。

这是代码

altclass:'myAltRowClass',
        altRows:true,
        beforeSelectRow: 
        function(rowid, e) 
        { 
            var iCol = $.jgrid.getCellIndex(e.target);

            if (iCol >=4) 
            {
                return false;
            }
            else
            {
                return true;
            }
        },
        width:624,

感谢您的回复

1 个答案:

答案 0 :(得分:2)

要阻止选择行,您可以使用beforeSelectRow事件处理程序。如果事件处理程序返回false,则将阻止行选择。您可以检查e.target,它将是用户点击的<td>元素或其子元素(如<a>中的<td>元素)。