teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

jqueryのプラグイン事態がうごいていないのではないかとおもったので、追記

2016/10/26 10:34

投稿

usuallyi
usuallyi

スコア41

title CHANGED
@@ -1,1 +1,1 @@
1
- jqueryでjquery.bottom-1.0が実行されない。
1
+ jqueryでjquery.bottom-1.0,validateが実行されない。
body CHANGED
@@ -1,18 +1,109 @@
1
1
  以下のjavascriptにて、tweetloadを実行させたのですが、
2
2
  通信1までlogは行くのですが、
3
3
  $(window).bind('bottom',function(){
4
- 文以降が実行されません。
4
+ 文以降が実行されず、
5
+ tweetload内のajaxの表示の部分がでません。
6
+ bottom部分をコメント文にした場合は、
7
+ 予定通り、ajaxの表示が働いている状況です。
5
8
 
9
+ また、他のjqueryのプラグインvalidateも追加しましたが、
10
+ messageが表示されず。
11
+
12
+ どちらもエラーはでないのですが、
13
+ 動作しません。
14
+
15
+
6
16
  jqueryは、3.1.1
17
+ 追記
18
+ jqueryを2.2.4に変更しました。
7
19
  cakephp 2.xです。
8
20
 
9
21
  ```javascript
22
+ var user_id;
23
+ var my_id;
24
+
25
+ $(function(){
26
+ //15秒ごとに読み込み
27
+ tweet_load();
28
+ console.log('sucess');
29
+ setInterval("tweet_load()", 15000);
30
+ console.log('sucess4');
31
+ });
32
+
33
+ $(document).on('click','button',function(event){
34
+ if(!confirm('本当に削除しますか?')){
35
+ /* キャンセルの時の処理 */
36
+ return false;
37
+ }else{
38
+ event.preventDefault();
39
+ $.ajax({
40
+ type:'POST',
41
+ url: '/cakephp/users/json_data',
42
+ dataType: 'json',
43
+ cache : false,
44
+ data : {id : $(this).val()},
45
+ timeout:10000,
46
+ success: function(data) {
47
+ //console.log(user_id+' '+my_id+' '+$('textarea').val()+' '+time);
48
+ console.log('delite_success');
49
+ tweet_load();
50
+ },
51
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
52
+ alert('error');
53
+ }
54
+ });}
55
+ });
56
+
57
+ $(document).on('click','div.submit',function(event) {
58
+ console.log('validate_start');
59
+ $('form').validate({
60
+ rules: {
61
+ textarea: {
62
+ required: true,
63
+ maxlength: 140
64
+ }
65
+ },
66
+ messages :{
67
+ textarea:{
68
+ required: "空白です。",
69
+ maxlength:"140文字以内で入力して下さい。"
70
+ }
71
+ }
72
+ });
73
+
74
+ if (!$('form').valid()) {
75
+ console.log('validate_error');
76
+ return false;
77
+ }
78
+ console.log('validate_end');
79
+ event.preventDefault();
80
+ $.ajax({
81
+ type:'POST',
82
+ url: '/cakephp/users/json_data',
83
+ dataType: 'json',
84
+ cache : false,
85
+ data : {'tweet_id': user_id ,'name': my_id , 'tweet' : $('textarea').val()},
86
+ timeout:10000,
87
+ success: function(data) {
88
+ $('textarea').val("");
89
+ //console.log(user_id+' '+my_id+' '+$('textarea').val()+' '+time);
90
+ console.log('sucess');
91
+ tweet_load();
92
+ },
93
+ error: function(XMLHttpRequest, textStatus, errorThrown) {
94
+ alert('error');
95
+ }
96
+ });
97
+ });
98
+
99
+
10
100
  function tweet_load(){
11
101
 
12
102
  var end_flag = 0; //最後のページまでいったら1にして次から読み込ませない
103
+ $('div.loading').append('loading...');
13
- $(window).bottom({proximity: 0.1}); //proximityを0.5にするとページの50%までスクロールするとloadingがはじまる
104
+ $(window).bottom({proximity: 0.5}); //proximityを0.5にするとページの50%までスクロールするとloadingがはじまる
14
105
  console.log('通信1');
15
- $(window).bind('bottom',function(){
106
+ $(window).on('bottom',function(){
16
107
  console.log('通信2');
17
108
  var obj = $(this);
18
109
  if (!obj.data("loading")) {
@@ -32,9 +123,7 @@
32
123
  alert('通信失敗');
33
124
  })
34
125
  .done(function(data){
35
- /* alert('通信');
126
+ alert('通信');
36
- $(".loading").empty(); //画面に出ているloading...を空にする
37
- if(response!="end"){*/
38
127
  user_id = data.user_id;
39
128
  my_id = data.my_id;
40
129
  var i=0;
@@ -58,4 +147,29 @@
58
147
  });
59
148
      $('html,body').animate({ scrollTop: 0 }, '1');
60
149
  };
150
+
151
+ ```
152
+ form部分も追加
153
+ cakephpのctpです。
154
+ ```php
155
+ <?php
156
+ echo $this->Html->script('https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js');
157
+ echo $this->Html->script('jquery.bottom-1.0');
158
+ echo $this->Html->script('jquery.validate');
159
+ echo $this->Html->css('index');?>
160
+
161
+ <?php
162
+ echo $this->Form->create('Tweet');
163
+ echo nl2br($this->Form->textarea('tweet', array('cols'=>100, 'rows'=>4,'required' => false,'error'=>false)));
164
+ echo $this->Form->hidden('tweet_id',array('value'=> $user['id']));
165
+ echo $this->Form->hidden('name',array('value'=> $user['username']));
166
+ echo $this->Form->submit('投稿',array(/*'onclick'=>'index',*/'name' => 'submit'));
167
+ echo $this->Form->end();
168
+ endif;
169
+ ?>
170
+ <h3>ホーム</h3>
171
+ <div id="output">
172
+ <div id="delite"></div>
173
+ <div class="loading"></div>
174
+ </div>
61
175
  ```