2015-04-20 80 views
0

基本上我有一個按鈕,如下所示:如何在外部事件後調用inline onclick - JavaScript/jquery?

<button onclick="productAddToCartForm.submit(this) " class="js-checkBackOrdered" type="button">Add to Cart</button> 

而且我有這些JS代碼:

jQuery(".js-checkBackOrdered").click(function(){ 

    if(jQuery("#backordered").length>0){ 
     showpopup(); 
     //should not execute the inline onclick here 
    } 
}); 

jQuery("#confirmbtn").click(function(){ 
    //execute the inline onclick event here 
}) 

jQuery("#closebtn").click(function(){ 
    closepopup(); 
    //do not proceed with the inline onclick event 
}) 

我有是,每次我點擊按鈕的問題,內嵌的onclick是與外部事件同時發射。

如何停止並執行productAddToCartForm.submit(this)事後?

請幫忙。

+0

你能刪除內聯'onclick'屬性呢?如果你使用外部jQuery來處理某些事件處理程序,那麼你可以將它用於所有的事件處理程序。 –

+0

你有兩個點擊處理程序,都附加到相同的元素。點擊觸發了這兩個處理程序。它會怎樣呢? –

+0

@Rory:thx爲提示,我已嘗試刪除屬性onclick onpage負載,但不能正確綁定後..與(this)的問題 –

回答

0

基本上你試圖將多個處理程序綁定到一個事件。你需要定義你想要給他們打電話的順序。
你可以做到這一點

<button class="js-checkBackOrdered" type="button">Add to Cart</button> 
jQuery(".js-checkBackOrdered").click(function(){ 

     if(jQuery("#backordered").length>0){ 
      showpopup(); 
      } 
      productAddToCartForm(); 
     }); 
function productAddToCartForm(){ 
//you code 
} 
+1

我完全同意你,但因爲我沒有控制html,我只能使用外部js來定義/覆蓋任何東西:( –

+0

爲什麼不放置'if(jQuery(「#backordered」).length> 0){ showpopup(); }'in start 'productAddToCartForm()' – ozil

相關問題