gpt4 book ai didi

javascript - <input> blur 事件未在 firefox 中的 tablesorter "sortBegin"EVENT 上触发

转载 作者:行者123 更新时间:2023-11-30 05:54:24 25 4
gpt4 key购买 nike

使用 tablesorter 我在 firefox 中遇到以下问题。

如果我在向文本框添加文本后立即尝试排序,文本框模糊事件不会总是触发。

请看下面的代码。谢谢你的帮助

// Jscript.js
$(document).ready(function () {

$.tablesorter.addParser({
id: 'coltwo',
is: function (s) {
return false;
},
format: function (s, table, cell) {
var temp = $('input', cell).val();
return temp.replace(",", "");
},
type: 'text'
});
$("#myTable").tablesorter({
headers: {
2: {
sorter: 'coltwo'
}
}
});

//http://mottie.github.com/tablesorter/docs/#Events


//update table and focus on table to try fire blur event
$("#myTable").bind("sortBegin", function () {

$(this).focus();

$('#myTable').trigger("update");



});


$(".txtInput").blur(function () {

var txt = $(this).val().replace("-",""); //remove this

$(this).val(txt + "z"); // add text to test if blur is working

});

});

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>
<script src="js/jquery.tablesorter.js" type="text/javascript"></script>

<script src="js/JScript.js" type="text/javascript"></script>


</head>
<body>
<form id="form1" runat="server">
<div>

<table id="myTable" class="tablesorter" border="1">
<thead>
<tr>
<th>Last Name</th>
<th>First Name</th>
<th>Email</th>
<th>Due</th>
<th>Web Site</th>
</tr>
</thead>
<tbody>
<tr>
<td>Smith</td>
<td>John</td>
<td><input type="text" value="aaaa" class="txtInput" /></td>
<td>$50.00</td>
<td>http://www.jsmith.com</td>
</tr>
<tr>
<td>Bach</td>
<td>Frank</td>
<td><input type="text" value="bbbb" class="txtInput" /></td>
<td>$50.00</td>
<td>http://www.frank.com</td>
</tr>
<tr>
<td>Doe</td>
<td>Jason</td>
<td><input type="text" value="cccc" class="txtInput" /></td>
<td>$100.00</td>
<td>http://www.jdoe.com</td>
</tr>
<tr>
<td>Conway</td>
<td>Tim</td>
<td><input type="text" value="dddd" class="txtInput" /></td>
<td>$50.00</td>
<td>http://www.timconway.com</td>
</tr>
</tbody>
</table>


</div>
</form>
</body>
</html>

最佳答案

如果我没记错的话,问题是在 Firefox 和 IE 中标题上的点击事件发生在模糊事件之前。因此,更好的方法是检测 keyup 事件。

另外,不是更新整个表格,而是使用 updateCell 方法只更新单元格。您可以在我的 blog post about tablesorter's missing documentation 中阅读有关此方法的更多信息.

或者更好的是,尝试 this demo 中的解析器(下面的代码)这只适用于我的 forked version of tablesorter .它不适用于原始版本的原因是格式 cell 参数在 updateCell 方法内部顺序不正确。

// add parser through the tablesorter addParser method
$.tablesorter.addParser({
id: 'inputs',
is: function(s) {
return false;
},
format: function(s, table, cell, cellIndex) {
var $c = $(cell);
// return 1 for true, 2 for false, so true sorts before false
if (!$c.hasClass('updateInput')) {
$c
.addClass('updateInput')
.bind('keyup', function() {
$(table).trigger('updateCell', [cell, false]); // false to prevent resort
});
}
return $c.find('input').val();
},
type: 'text'
});

关于javascript - &lt;input&gt; blur 事件未在 firefox 中的 tablesorter "sortBegin"EVENT 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com