我正在尝试了解如何在jquery中使用bind。
我有一个页面,按下按钮后,会执行以下代码:
var html = [];
html.push('<select name="weddingturn" id="weddingturn">');
var a = firstweddingturn;
var b = Number(firstweddingturn) + 16;
while (a < b) {
// do some code
html.push('<option name="asdf">' + a + '</option>');
a++;
} // end while
html.push('</select>');
$('#div1').append(html.join(''));
我也希望在设置完成后捕获对该选择的任何更改。
var firstweddingturn = '400';
$('#weddingturn').live('change',function() {
alert ("Wedding select change triggered!");
//var wedturn = $('#weddingturnselectid').val();
//$('#div3').append('<br>Wedding turn selected, ' + wedturn + '</br>')
});
我非常感谢有人在此展示和解释如何使用bind()而不是live()。
为了上下文,请参阅此处:jquery created select, and triggering on change
答案 0 :(得分:2)
只需交换:
$('#weddingturn').live('change',function() {
为:
$('#weddingturn').bind('change',function() {
.live
应该已经解决了您的问题 - 那么您遇到的确切原因或问题是什么?
答案 1 :(得分:2)
$('#weddingturn').live('change',function(){});
此网站很好地解释了这些差异:http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/
答案 2 :(得分:2)
对于某些事件,还有绑定()的简写。您可以通过以下方式缩短代码:
$('#weddingturn').change(function() {
请注意,虽然bind()
和live()
做了根本不同的事情。 live()
会影响给定选择器的所有内容,而bind()
只会将事件绑定到页面上已有的元素。
答案 3 :(得分:1)
我认为这取决于你何时调用live或bind - 在那些可用的html元素之前或之前。如果您在该页面上的那些html元素可用之后调用bind,则交换应该可以。否则,我认为bind不起作用。