2011-11-07 82 views
2

我有許多元素與「點擊」事件。 如何在所有按鈕的jQuery點擊事件添加一些條件?覆蓋標準點擊事件?如何在jquery點擊事件中添加一些條件?

例如:

if (my_condition) { 
    return click(); 
} else { 
    return false; 
} 
+2

這在很大程度上取決於條件本身。你可以再詳細一點嗎? – unclenorton

回答

3

如果你想針對所有按鈕

  1. 使用按鈕選擇
  2. 覆蓋click事件
  3. ,如果你的條件爲真,執行某些功能和/或阻止默認點擊行爲。
$(':button').click(function(event){ 

    if (someCondition){ 
     doSomeFunction(); 
     event.preventDefault(); 
    } 

});

如果條件是假的,那麼這應該不中斷的默認行爲。

0

可以使用綁定,

$('#MY-BTNS').bind('click', function() { 

if(my_conditions) 
    alert('User clicked on "foo."'); 
}); 

,也可以擴展jQuery.click();

但在我看來,最好是使用綁定。

+2

jQuery的'click()'方法只是'.bind('click',handler)'的一個快捷方式。有關更多信息,請參閱文檔:http://api.jquery.com/click/ –

+0

謝謝,我的意思是,而不是覆蓋點擊行爲,最好在精確綁定上進行更改。 – pomaxa

2

像這樣的東西應該工作:

$("input[type='button']").bind("click", buttonClick); 

buttonClick = function(e) { 
    if (someCondition) { 
     $(this).unbind("click"); // remove the click for element 
    } 
} 
相關問題