2011-07-28 19 views
0

我試圖添加一個單一條件到下面的Javascript中,當用戶在頁面上的字段集內單擊時,將停止IF語句低於等於TRUE。在鼠標單擊時檢測字段集JQUERY

我曾嘗試而各種但我猜,我只是想加入「 & &!(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

我們可以請看看html,也許你可以在http://jsfiddle.net/上做小提琴。 – mcgrailm

回答

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)