36

重複の可能性:
オブジェクトにメソッドがあるかどうかのjQueryテスト?

javascriptを呼び出す前に関数が存在するかどうかを設定したいのですが、これを実行してこのスクリプトに適用する方法を教えてください

$(document).ready(function() {
   $(".cs-text-cut").lettering('words');
});
4

4 に答える 4

96

私はあなたがそれletteringが存在することをチェックして確かめたいと思っていると仮定しています、これを試してください:

http://api.jquery.com/jQuery.isFunction/

次に例を示します。

if ( $.isFunction($.fn.lettering) ) {
    $(".cs-text-cut").lettering('words');
}
于 2012-12-01T07:01:15.570 に答える
23

これを使用して、機能が存在するかどうかを確認します。

<script>
if ( typeof function_name == 'function' ) { 
        //function_name is a function
}
else
{
 //do not exist
}
</script>
于 2012-12-01T07:06:34.447 に答える
7

letteringテストしたい関数の場合は、次のように行うことができます。

$(document).ready(function() {
    var items = $(".cs-text-cut");
    if (items.lettering) {
        items.lettering('words');
    }
});

または、呼び出す前に関数であることを絶対に確認したい場合items.letteringは、次のようにすることができます。

$(document).ready(function() {
    var items = $(".cs-text-cut");
    if (typeof items.lettering === "function") {
        items.lettering('words');
    }
});

または、実際に環境を制御していないため、レタリング関数呼び出しが機能するかどうかがわからず、例外をスローする可能性がある場合は、例外ハンドラーを配置するだけです。

$(document).ready(function() {
    try {
        $(".cs-text-cut").lettering('words');
    } catch(e) {
        // handle an exception here if lettering doesn't exist or throws an exception
    }
});
于 2012-12-01T07:04:24.833 に答える
0

typeof $({}).lettering == 'function'または$.isFunction($({}).lettering)、まだ利用可能かどうかについてブール値を返す必要があります。

于 2012-12-01T07:30:43.190 に答える