1

Firefox、Chrome、Safari、および Opera で正常に動作しているボタンの 1 つに目立たないように onclick イベントを設定しました。しかし、IE8 では te スクリプトが呼び出されることはありません (デバッガー ステートメントは実行されません)。

スクリプト:

$(function () {
    $('#template-button').click(function () {
        debugger;
        var $templateDdl = $('#templateDdl');
        var selTempID = $templateDdl.val();
        var url = $templateDdl.data('url');
        $.post(url, { selectedTemplateID: selTempID }, function (data) {
            $('#template').html(data);
        });
    });
});

ボタン:

<input type="button" value="Verander template" id="template-button" />

JQuery は、artsportaal.js という別のファイルにあり、_Layout.cshtml にロードされます。

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.ui.core.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.ui.datepicker.min.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/IG/infragistics.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/IG/infragistics.loader.js")" type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/artsportaal.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/DatePickerReady.js")" type="text/javascript"></script>

ほぼ最後のスクリプトとしてロードされています。

これは回避策のあるよく知られた問題ですか? 私は何か間違ったことをした?私の質問に興味を持っていただき、ありがとうございます。

4

1 に答える 1

0

このコードは完全に機能します。@ravisoni がコメントしたように、名前の衝突が原因だった可能性があります。

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>

    <script type="text/javascript">

        $(function () {
            $('#my_button').click(function () {
                alert('button got clicked!');
            });
        });

    </script>

</head>
<body>
    <input type="button" value="click_me" id="my_button" />
</body>
</html>

編集:「デバッグ;」について@ devnull69にコメントするように編集します。副作用のないステートメントは JS で受け入れられるため、その「デバッグ」が原因でスクリプトがクラッシュすることはありません。

これは有効な JS です。

$(function () {
    $('#my_button').click(function () {
        'use strict';
        'or better, do not use strict';
        var x = 83;
        x;
        alert('button got clicked!');
    });
});

試してみてください: http://jsfiddle.net/SQgdK/1/

于 2013-03-06T12:25:40.613 に答える