0

ページに 2 つの div を使用しました。たとえば、

<div id="ListPage" data-role="content" style="background-color: gray; background-size: 100%;background-repeat: no-repeat; overflow: hidden;">
<div id="ListPageContent" style="width: 100%;"></div>                   
</div><div id='divViewMore' style='background-color:#D2D0C1;border-radius:5px;width:100%;height:20px;display:block;' align='center'><p style='text-align:center' >View more Here</p>
</div>

ここでは、listPageContent - データを動的に追加しました。divViewmore をクリックすると、ページから 2 回呼び出されます。私のページに使用した次のコード。

$(document).ready(function() {
    $("#divViewMore").unbind().click(function() {
        alert('hello');
    });
});

通常の onclick イベントを使用してハンドラーも呼び出している場合、その時も同じ問題に直面しています。

この問題を回避するにはどうすればよいですか? 必要なことをしてください。

4

3 に答える 3

0

あなたのコードからフィドルを作成しましたが、問題はありません。クリック イベントは 2 回呼び出されません。

$("#divViewMore").unbind().click(function () {
    alert('hello');
});

http://jsfiddle.net/TNZCU/

クリックイベントを複数回追加しても。unbind() はその仕事をしているようです。

var clickReceived = function () {
    alert('hello');
}
for (var i = 0; i < 3; i++) {        
    $("#divViewMore").unbind().click(clickReceived);
}

http://jsfiddle.net/TNZCU/1/

.Unbind() を削除すると、アラートが複数回呼び出されます。

于 2013-09-13T13:48:57.857 に答える
0

これは私が考える正しい方法です::

$(document).ready(function() {
    $("#divViewMore").unbind('click');
    $("#divViewMore").click(function() {
        alert('hello');
    });
});
于 2013-09-13T13:38:37.590 に答える
0

Handling click event requires only this

$(document).ready(function() {
    $('#divViewMore').click(function() {
        alert('Hello');
    });
});

Not sure why you should use unbind()

于 2013-09-13T13:36:21.870 に答える