0

次のコードがあり、オブジェクトを呼び出そうとFloater.Create()しています。ID を使用したくありません。DOM を使用するだけです。参考までに、オブジェクトには既に が添付されています。両方を実行したいと思います。click[data-floatertype=minimize][data-floatertype=minimize].on('click',...)

<div data-floater="true" data-minimized="false">
    <p data-floatertype="title" class="title" style="font-size: 20px;">Welcome</p>
    <a data-floatertype="minimize" href="#" class="minimize" style="right: 30px;">-</a>  
    <a href="#" data-floatertype="close" class="close">X</a>
    <div data-floatertype="content" class="content" style="display: block;">                
    <div style="display: block; text-align: center;" data-display="block">
        <h3>Floaters 101</h3>
        <hr>
        <p style="text-align:left;">You can have as many floaters open as you would like.</p>
        <p style="text-align:left;">Floaters can be minimized by using the minimize button in the top right.</p>
        <p style="text-align:left;">Floaters can also be closed using the close button in the top right.</p>
        <hr>
        <p>Try minimizing this window now.</p>
        <script type="text/javascript">
            $(this).parent().siblings('[data-floatertype=minimize]').on('click', function () {
                Floater.Create("Good job!", "floatertutorial.php", {intro: "3"});
            });
        </script>
    </div>              
</div>

私が疑う問題は$(this).parent().siblings(...)、正しいオブジェクトを返さないか、何も返さないことです。または... が.on('click',...)正しくバインドされていません。いずれの場合もFloater.Create()、リンクがクリックされたときにメソッドは呼び出されません。ヘルプ?

4

1 に答える 1

1

thisHTML 要素の「スコープ」の影響を受けず、使用した場所をthis参照しwindowます。次のようにする必要があります。

$('[data-floatertype=minimize]').on('click', function () {
    Floater.Create("Good job!", "floatertutorial.php", {intro: "3"});
});
于 2013-03-29T15:48:42.510 に答える