2

每当任何表单元素上有点击事件时,我都想重新加载一个元素。任何人都可以帮助我使用 jquery 语法吗?就像是

function addClickHandlers() { $.publish('refreshDiv'); }

div 的 reloadTopic 设置为 refreshDiv

谢谢

4

4 回答 4

1

点击事件冒泡,所以你可以在表单元素上设置事件:

$('#myForm').click(function () {
    $.publish('refreshDiv'); 
});

您还可以使用.delegate()仅捕获来自表单中某些元素的点击:

$('#myForm').delegate("input, select, textarea", "click", function () {
    $.publish('refreshDiv'); 
});
于 2010-07-23T11:20:11.990 回答
0

为每个元素添加一个处理程序。

$('*').click(function () {
    $.publish('refreshDiv'); 
    return false; // to stop it from bubbling as we already handled it here.
});
于 2010-07-23T11:25:58.657 回答
0

好吧,我可以用两种方式解释你的文字:

1)$.publish在作为表单元素的子元素的任何元素上执行

$('form').children().click(function(){
   $.publish('refreshDiv');
});

2)$.publish对所有执行form elements(如checkboxes, radio buttons, etc.

$('form').find('input').click(function(){
   $.publish('refreshDiv');
});

就像 Andy E. 建议的那样,它对delegateclick 事件有更好的性能,所以event handlers约束更少。

3)

$('form').delegate('input', 'click', function(){
   $.publish('refreshDiv');
});
于 2010-07-23T11:26:49.197 回答
0

我不知道发布,我从来没有在 jquery 中看到过这种代码,但是如果你想重新加载整个页面,那么你可以做跟随

<button id="PageRefresh">Refresh a Page in jQuery</button>

<script type="text/javascript">

    $('#PageRefresh').click(function() {

              location.reload();

    });

</script>

如果你想重新加载特定的 div,那么我认为你应该在 jquery 中使用 ajax 并在 div 中重新加载 html。

$.post("/page", frm.serialize(), function(data) {
                    $("#ReminderProjectCount").html(data);
            });
于 2010-07-23T11:32:29.737 回答