2014-01-24 29 views
0

我想在onClick函數中編寫一個JavaScript代碼行,並在同一個onClick中調用另一個函數。我試過如下:我如何在onClick函數中編寫JavaScript代碼以及我也想調用另一個函數

<select onchange="updateSeatsDinnerCategory(3993); javascript: return function(){$(this).prop('disabled', true); return true;};" class="width-80" id="rowDinnerCategorySelect3993"> 
    <option value="-1">--select--</option> 
    <option value="1">Family</option> 
</select> 

但它不工作。

+0

http://stackoverflow.com/questions/3210645/calling-two -javascripts-functions-onclick – Reger

+0

@ tas9我們可以調用多個函數,但我不想調用函數但是執行一行代碼。 –

回答

1

function(){ ... }是一個函數定義。如果你想裏面的代碼將被立即executated,你也需要調用它:

(function(){ ... })() 

您的代碼就變成了:

<select onchange="updateSeatsDinnerCategory(3993); return function(){$(this).prop('disabled', true); return true;}();" class="width-80" id="rowDinnerCategorySelect3993"> 
    <option value="-1">--select--</option> 
    <option value="1">Family</option> 
</select> 

你的代碼迎向美好的,(假設它是實際的代碼你要使用),你不需要IIFE,也沒有返回值(這是總是如此):

<select onchange="updateSeatsDinnerCategory(3993); $(this).prop('disabled', true);" class="width-80" id="rowDinnerCategorySelect3993"> 
    <option value="-1">--select--</option> 
    <option value="1">Family</option> 
</select> 

DEMO:http://jsbin.com/agIVUfEt/1/edit

+0

是我使用$(this)的方式是正確的。我想禁用相同的選擇 –

+0

一個簡單的'console.log(this)'會告訴你所有你需要知道的:http://jsbin.com/agIVUfEt/2/edit。是的,這是正確的。 – Tibos

+0

是的,它的正確感謝很多 –

0

傳遞一個可選的回調到updateSeatsDinnerCategory功能

function updateSeatsDinnerCategory(seats, callback) { 
    // do whatever you wanted to do 

    if (typeof callback !== 'undefined') { 
     callback.call(this); 
    } 
} 

這樣,如果你身邊走過可以調用函數,並跳過您不想要的。

// this will call the "standard version" 
updateSeatsDinnerCategory(3993); 

// this will execute the callback function as well 
updateSeatsDinnerCategory(3993, function() {alert('lol')); 

回調不一定是一個匿名函數,當然,範圍內的任何函數都可以工作。

編輯

有檢查未定義的更好的方法,但是這是最簡單的一個。

1

使用此:

<select onchange="updateSeatsDinnerCategory(3993);$(this).prop('disabled', true); return true;" class="width-80" id="rowDinnerCategorySelect3993"> 
<option value="-1">--select--</option> 
<option value="1">Family</option> 

1

你可以這樣做:

<select onchange="(function() {updateSeatsDinnerCategory(3993); $(this).prop('disabled', true); return false;})()" class="width-80"  id="rowDinnerCategorySelect3993"> 
    <option value="-1">--select--</option> 
    <option value="1">Family</option> 
</select> 

Demo

相關問題