0

jquery によって呼び出される単純な Shadowbox があります。

$('#statsButton').click(function() {
    thisContent = $('#userStats').html();
    Shadowbox.open({
        content: thisContent,
        player: "html"
    });
});

$('#userStats')クリック時に警告するオブジェクトに div があります。

$("#submitPosition").click(function(e) {
        alert('test');
});

しかし、クリックしても何も起こりません。上記の関数は両方とも、独自のドキュメント対応ブロックにラップされています。Shadowbox.initスクリプトの冒頭で呼び出すと、うまく機能します。内部のjQueryイベントを無視するだけです。誰でも助けることができますか?

簡単な要約: 基本的には、Shadowbox と HTML プレーヤーを立ち上げます。その HTML プレーヤー内で jQuery が期待どおりに動作するようにします。

4

3 に答える 3

2

これを試して:

$(document).ready(function(){    
    $("#submitPosition").live('click',function(e) {
            alert('test');
    });
});

これは役に立ちます。このコードが時間を初期化すると、#submitPositionが html に存在しません。しかし、ライブはこの問題を解決します。

于 2012-11-01T18:14:31.797 に答える
2

コンテナにコンテンツを動的にロードする場合は、jQuery を使用してイベントon()をコンテンツ内のオブジェクトにバインドする必要があります。click()#submitPosition

例えば:

$('body').on('click', '#submitPosition', function(e) {
   alert('test');
});

また、同じ id を持つページで複数の要素を使用することはお勧めできません。

http://api.jquery.com/on/

于 2012-11-01T18:13:32.737 に答える
0

2 つのオプションが表示されます。

1) userStat div で、次のように変更します。

$("#submitPosition").click(function(e) {
    alert('test');
}).click();

実際にコールバック関数を呼び出します。

2) シャドーボックスの onOpen イベントを使用します。

$('#statsButton').click(function() {
    thisContent = $('#userStats').html();
    Shadowbox.open({
        content: thisContent,
        player: "html",
        onOpen: function(){ alert('test'); } 
    });
});
于 2012-11-01T18:24:41.620 に答える