2014-01-24 27 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

相关问题