1

divを動的に作成し、それをコンテナーに追加しています。

var str = '<div class="dimsdiv" id="'+dim.src+'" cursor:pointer;"></div>'; 
$('#fpdiv').append(str);

今、私はそれらのdivにもホバーを追加する必要があります。参照しようとしましたが、代わりに.on()を検討する必要があることがわかりました。私はこれを試しました(前に):

$('#'+dim.src).hover(function{},function{});

しかし、予想通り、それはうまくいきませんでした。私もこれを試しました:

$('#'+dim.src).on('hover','(function{},function{})');

しかし、構文を正しく理解できないようです。誰かがここで助けることができますか?前もって感謝します。

4

5 に答える 5

3

あなたはこれを試すことができます

var str = $('<div/>', {
    text:'Hello',
    class:'dimsdiv',
    id:'dim_src',
    style:'cursor:pointer',
    mouseenter:function(){ ... },
    mouseleave:function(){ ... }
});
$('#fpdiv').append(str);

.また、 fromを削除しdim.src、代わりにdim_srcasを使用します。jQuery でセレクターidとして使用されます。なぜそれを使用したのかわかりませんが、無効です。class$('#'+dim.src)

デモ

于 2012-09-28T22:39:42.617 に答える
2

クラス"dimsdiv"を持つ動的に作成された要素と ID "fpdiv"を持つ親要素に対して、デリゲート イベント アプローチを使用し、ホバー イベント (つまりmouseenterと) をバインドできます。mouseleave

$("#fpdiv").on({
    mouseenter : function() {
        // hover on
    },
    mouseleave : function() {
        // hover off
    }
}, ".dimsdiv");
于 2012-09-28T22:34:46.067 に答える
0
.on('hover','  has been deprecated in the latest jQuery version..

そのためには、委任されたイベントを使用する必要があります。イベントを親コンテナに追加します。

2 番目の方法は、要素の作成後にイベントを追加することです

$(function() {
    var addEvent = function() {
        $('.dimsdiv').unbind().hover(function {}, function {});
    }

        // Lets say you are creating your div's here
        $('#btn').on('click', function() {
           // Create Div
             var str = '<div class="dimsdiv" id="'+dim.src+'" cursor:pointer;"></div>'; 
             $('#fpdiv').append(str);

            // Call the function here
            addEvent();

        });
});​
于 2012-09-28T22:34:11.167 に答える
0

の省略形hoverエイリアスonは 1.8 で削除されました。hover()代わりにメソッドを使用できます。hover-in および hover-out イベントを処理するための引数として 1 つまたは 2 つの関数を受け取ります。

$('#'+dim.src).hover(
  function () {
    // hover in code here
  },
  function () {
   // hover out code here
  }
);
于 2012-09-28T22:36:19.527 に答える
0

必要なのはライブ関数なので、一度設定すると動的 html に影響します。

http://api.jquery.com/live/

于 2012-09-28T22:37:11.883 に答える