在鼠标单击JQUERY上检测字段集

时间:2011-07-28 02:39:02

标签: jquery

我正在尝试向以下Javascript添加单个条件,当用户在页面上的字段集内单击时,该条件将停止IF语句,使其回到正确状态。

我已经尝试了各种各样,但我猜,我只是尝试添加“ &安培;&安培; !(e.target.isFieldSet))“但没有快乐。我试过在网上搜索任何想法的人?

$(function() {
    $('tr').live('click', function(e) {

        //if not clicking an anchor tag or imag then assume user wants to go to details page
        if ((!$(e.target).is('a')) && (!$(e.target).is('img')) && (!$(e.target).is('th')) && !(e.target.isTextEdit)) {
            window.location = $("#AbsolutePath").val() + 'Waste.mvc/Details/' + $(this).attr('rowid');
        }

    });
});

1 个答案:

答案 0 :(得分:0)

我认为你在寻找:!$(e.target).is('fieldset')

$(function() {
    $('tr').live('click', function(e) {

        //if not clicking an anchor tag or imag then assume user wants to go to details page
        if ((!$(e.target).is('a')) && (!$(e.target).is('img')) && (!$(e.target).is('th')) && 
           !(e.target.isTextEdit) && !$(e.target).is('fieldset')) {
            window.location = $("#AbsolutePath").val() + 'Waste.mvc/Details/' + $(this).attr('rowid');
        }

    });
});

示例: http://jsfiddle.net/zbdRT/


但是,我认为这是不可维护的代码。如果您需要添加更多标签(正如您现在所做的那样),该怎么办?这样的事情会更好:

if (!$(e.target).is("a, img, th, fieldset") && !e.target.isTextEdit)

或者,您可以将要忽略的标记存储在可以轻松添加的数组中(这也使代码对您的意图更具表现力):

var excluded = ["a", "img", "th", "fieldset" ];

if (!$(e.target).is(excluded.join(", ")) && !e.target.isTextEdit)