我正在动态地向页面添加一些HTML元素。可以添加多个项目,可以添加不同的时间......因此很难使用“绑定”。
我决定使用内联函数---但这不适用于Firefox ...适用于所有其他浏览器。注意onClick的选项。另外,我尝试过onblur,onchange和select。这些都不适用于Firefox。
我的目标是在选择选项时运行这些功能。我想我只是缺少一些东西。
$("#billTasks").find('tr')
.append('<td><fieldset><select>
<option class="fixedRate" onClick="fixedOption(this)" id="billFixedSelect" value="1">Fixed Rate</option>
<option class="hourly" onClick="hourlyOption(this)" id="billHourlySelect" value="2"></option>
</select>
<input type="text" placeholder="Rate" class="fieldWidth100 rate currency" style="margin-right:10px;"/>
<select class="schedule">
<?php while($row = $db->sql_fetchrow($result)){
echo "<option value=\'{$row['schedule']}\'>{$row['schedule']}</option>\\n";}?>
</select></fieldset></td>');
这是有问题的代码(在追加字符串中)
<select>
<option class="fixedRate" onClick="fixedOption(this)" id="billFixedSelect" value="1">Fixed Rate</option>
<option class="hourly" onClick="hourlyOption(this)" id="billHourlySelect" value="2"></option></select>
答案 0 :(得分:2)
为什么内联你尝试这样的事情。
$("#billTasks").find('select').live("change", function() {
var SelectedValue = $(this).val();
if (SelectedValue == '1') {
//your task
}
if (SelectedValue == '2') {
//Your Task
}
});
答案 1 :(得分:1)
您可以使用委托事件处理程序:
$('#billTasks ').on('change', 'select', function() {
// your code
hourlyOption(this); // here this points to select itself
});
阅读here
答案 2 :(得分:0)
我建议使用一个类。你能做的就是这样:
function Option(html, events) {
var o = $(html);
for(var k in events) {
o.bind(k, events[k]);
}
return o;
}
使用这样的东西:
var o = new Option('<option>blah</option>', { click: function() { } ... });
和o
只是一个新的jquery对象。所以无论如何你都可以使用它。