-1

私はこのような単純なhtmlの作成を持っています:

$('#date_'+user_id).append('<input  type="text" size="20" id="date_new_'+user_id+'" value="'+dateStr+'"/>');

IDが動的であることがわかるように、次のように関数をそれにバインドしようとします:

$('#date_new_'+user_id+"'").bind({
    click: function() {
    alert("do something on click");
     },
    mouseenter: function() {
    alert("do something on mouseenter"); 
}

});

動的ID(私が作成したもの)を使用していることがわかりますが、次のようなエラーが発生します:

Uncaught Error: Syntax error, unrecognized expression: #date_new_97' jquery-1.8.2.min.js:2
bc.error jquery-1.8.2.min.js:2
bh jquery-1.8.2.min.js:2
bp jquery-1.8.2.min.js:2
r.querySelectorAll.bp jquery-1.8.2.min.js:2
bc jquery-1.8.2.min.js:2
p.fn.extend.find jquery-1.8.2.min.js:2
p.fn.p.init jquery-1.8.2.min.js:2
p jquery-1.8.2.min.js:2
(anonymous function)
p.event.dispatch jquery-1.8.2.min.js:2
g.handle.h

Chrome 開発者ツールと firebug で作成されたテキスト要素が表示されます

4

2 に答える 2

1

$('#date_new_'+user_id+"'")あなたの問題です。

この場合を考えると:

var user_id = 15;
var jquery_selector = '#date_new_'+user_id+"'";

jquery_selector#date_new_15'代わりになり#date_new_15ました。末尾の一重引用符に注意してください。

に変更すると$('#date_new_'+user_id)、正常に動作するはずです。

于 2012-11-25T21:11:59.090 に答える
0

このコードを試してください:

$('#date_new_'+user_id).bind({
    click: function() {
    alert("do something on click");
     },
    mouseenter: function() {
    alert("do something on mouseenter"); 
});

ただし、入力を動的に追加する場合は、次のコードを使用することをお勧めします。

$(document).on('click','#date_new_'+user_id, function() {
    alert("do something on click");
     } 
});
$(document).on('mouseenter','#date_new_'+user_id, function() {
    alert("do something on mouseenter");
     } 
});
于 2012-11-25T21:12:52.110 に答える