1

部分的なポストバックの後、jquery グリッター通知を機能させるのに苦労してきました。多くのグーグル検索の後、pageLoad 関数を推奨する多くの提案が見つかりました。正しく実装したかどうかはわかりませんが、部分的または完全なポストバックの前であっても、グリッター通知はまったく表示されません。

私が間違っているところがわかりますか?Javascript/jquery は私の強みではありません。

<script type="text/javascript">

    function pageLoad() {
        $(function () {
            $('.buy-notify').click(function () {
                var spn = this.attributes.getNamedItem('PartNumber').value;
                $.gritter.add({
                    title: 'Order notification..',
                    text: 'Adding ' + spn + ' to basket',
                    time: 1000
                });
                return true;
            });
        });
    };

</script>

前もって感謝します、

デイブ

4

3 に答える 3

1

$(関数 () { ... }); ページの読み込み時に呼び出されるため、pageLoad という関数でラップする必要はありません。

.buy-notifyページの読み込み後に要素が追加される場合は、最初のページ読み込み時に jQuery に表示される要素にのみバインドされるため、バインディング.live('click', function() ...の代わりに使用することをお勧めします。.click(function() ....click

于 2011-07-06T16:10:59.950 に答える
0

彼らはする必要はありません

  $(function () {
});

関数では、HTMLのBodyタグでonloadイベントを使用してこれを行うことができます。

<body onload="javascript:pageLoad()">

それ以外の場合は、jQueryでページロードを確認し、イベントをバインドします

$(function() {
  $('.buy-notify').click(function () {
     var spn = this.attributes.getNamedItem('PartNumber').value;
      $.gritter.add({
      title: 'Order notification..',
      text: 'Adding ' + spn + ' to basket',
      time: 1000
    });
    return true;
  });
});

少し簡単な3番目の方法

<a href="javascript:void(0)" onclick="javascript:iamclick(0)"></a>

function iamclick(){
   var spn = this.attributes.getNamedItem('PartNumber').value;
          $.gritter.add({
          title: 'Order notification..',
          text: 'Adding ' + spn + ' to basket',
          time: 1000
        });
        return true;
      });
}
于 2011-07-06T16:47:12.457 に答える
0

ページが完全にロードされたときに実行される関数の jQuery ショートカットを参照している可能性があります。

$(function() {
  $('.buy-notify').click(function () {
     var spn = this.attributes.getNamedItem('PartNumber').value;
      $.gritter.add({
      title: 'Order notification..',
      text: 'Adding ' + spn + ' to basket',
      time: 1000
    });
    return true;
  });
});
于 2011-07-06T16:12:48.413 に答える