jQuery - 抓住

时间:2013-05-15 21:58:46

标签: jquery button onclick

我有一个使用onclick fct的按钮:

<input type="button" onclick="document.location = 'mylocation.html';"  class="button urlToMainDiv" value="Back">

我想使用jQuery(基于使用的类)捕获被调用的url,以便能够使用jQuery.load。

我尝试了很多选择器,但我无法捕获被叫网址。

喜欢这个:

jQuery(".urlToMainDiv input").click(function(e){     
     e.preventDefault(); 
    load_ajax_content(this.href,divId,1);       
}); 

任何ID或解决方案?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

$('input.button').each(function() {
    var $this = $(this),
        url = $this.attr('onclick').split('=')[1];
    $this.removeAttr('onclick').data('url', url);
}).on('click', function(e) {
    $('#div').load( $(this).data('url') );
});

http://jsfiddle.net/Rttjs/

答案 1 :(得分:1)

你不能阻止jQuery中的本机onclick处理程序,你必须删除它以确保按钮没有重定向,并且在你删除它之前你必须得到URL,然后使用load()函数中的网址,如下所示:

var url = $('.urlToMainDiv').attr('onclick');
$('.urlToMainDiv').attr('onclick', '');  // removes the onclick function

$('.button').on('click', function(e) {
    e.preventDefault();
    url = url.split("'")[1];
    $('#elementId').load(url);
}); 

FIDDLE

答案 2 :(得分:0)

也许我错过了一些东西,但只需在onclick中调用自定义函数:

<input type="button" onclick="doLoad('mylocation.html'); return false;"  class="button urlToMainDiv" value="Back">

function doLoad(url){
    // now use jQuery load
}

如果您无法修改HTML,只需覆盖onclick

即可
$('input.urlToMainDiv').attr('onclick', "doLoad('mylocation.html')");