1

ロード時とクリック時の両方で実行されるjquery関数を実行するにはどうすればよいですか?

$("#prevd,#nextd").live("click",function() {
alert('test');
$('#m0d1y2013').attr('title', 'New Year!');
$('#m0d21y2013').attr('title', 'Marthin Luthor King Day');
$('#m1d25y2013').attr('title', 'Presidents Day');
});

クリックしたり、オンロードクリックを設定したりせずに、このjqueryのコンテンツを実行するにはどうすればよいですか?

4

3 に答える 3

2
function mySuperThings(){

   alert('test');
   $('#m0d1y2013').attr('title', 'New Year!');
   $('#m0d21y2013').attr('title', 'Marthin Luthor King Day');
   $('#m1d25y2013').attr('title', 'Presidents Day');

}

$(function(){              // DOM IS READY TO BE MANIPULATED

    mySuperThings();       // RUN FUNCTION

    $(document).on("click", "#prevd, #nextd", function() {
        mySuperThings();   // RUN ON CLICK
    });

});

PS: jQuery v. >= 1.7 http://api.jquery.com/on/を使用することを考慮してください。

于 2013-02-23T16:33:34.250 に答える
0

を使用して合成イベントを発生させることもできます.click()

$("#prevd,#nextd").live("click",function() {
  alert('test');
  ...
}).click();

また、jQuery 1.7 以降では、.on()動的に生成された要素にイベント ハンドラーをバインドするために使用する必要があります。

于 2013-02-23T16:41:14.873 に答える
0

これを試すことができます:

  $(function(){
    $("#prevd,#nextd").live("click",function() {
      alert('test');
      $('#m0d1y2013').attr('title', 'New Year!');
      $('#m0d21y2013').attr('title', 'Marthin Luthor King Day');
      $('#m1d25y2013').attr('title', 'Presidents Day');
    });
    $(this).find("#prevd,#nextd").click();
  });
于 2013-02-23T16:53:51.543 に答える