0

私は次のものを持っています:

$("#city-button-panel a")
    .click(function () {
    preventDefault();
    var $link = $(this);
    getCityContentAjax($link);
});

しかし、デフォルトを防ぐことはできず、構文エラーが発生します

#city-button-panel の奥深くにある要素は次のようになります。

<a href="/City/1555009O" id="btn-49">49</a>
4

2 に答える 2

2

preventDefault渡されたイベントを呼び出す必要があります。その他preventDefaultは未定義であるか、何か他のことを行います。試す:

$("#city-button-panel a")
        .click(function (event) {
            event.preventDefault(); 
            var $link = $(this);
            getCityContentAjax($link);
        });

デモ: http://jsfiddle.net/vatjK/

が機能するには、ハンドラーが正常に戻る必要があることに注意してくださいpreventDefault。が例外をスローした場合getCityContentAjax、例外の伝播を防止せずにデフォルト アクションを防止することはできません。ただし、これを行うことはできます (修正できない場合getCityContentAjax):

$("#city-button-panel a")
        .click(function (event) {
            event.preventDefault(); 
            var $link = $(this);
            try{
                getCityContentAjax($link);
            }catch(e){
                console && console.error(e);
                alert("Look at the console!!!"); // optional
            }
        });

このコードには構文エラーはありません。ブラウザがそうでないと判断した場合、コードの前に構文エラーが発生している可能性があります。構文エラー (括弧の不一致など) と参照エラー (グローバル スコープの関数が存在しない) には違いがあることに注意してください。

于 2012-12-02T08:16:42.900 に答える
0

これがプレーンなjavascript(+ html)バージョンです

<head>
  <script>
     function theClick(url,ev){
       getCityContentAjax(url);
       ev.preventDefault();
     }
  </script>
</head>

<body>
  <a onclick="theClick(this,event)" href="url.html">a link</a>
</body>
于 2012-12-02T09:20:10.363 に答える