如何在onClick函数中编写JavaScript代码以及我还想调用另一个函数

时间:2014-01-24 08:48:14

标签: javascript jquery html

我想在onClick函数中编写一个JavaScript代码行,并在同一个onClick中调用另一个函数。我尝试过如下:

<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>

但它不起作用。

4 个答案:

答案 0 :(得分:1)

function(){ ... }是一个函数定义。如果您希望立即执行内部代码,您还需要调用它:

(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

答案 1 :(得分: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>

答案 2 :(得分: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

答案 3 :(得分: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'));

回调当然不一定是匿名函数,只是范围内的任何函数都可以工作。

修改

有更好的方法来检查undefined,但这是最简单的方法。